diff --git a/app/src/main/java/gui/widget/SudokuSelector.java b/app/src/main/java/gui/widget/SudokuSelector.java index fe0f251..4586335 100644 --- a/app/src/main/java/gui/widget/SudokuSelector.java +++ b/app/src/main/java/gui/widget/SudokuSelector.java @@ -39,6 +39,8 @@ public class SudokuSelector { private final SmoothProgressBar genProgressBar; + private volatile boolean genDone = false; + public SudokuSelector(boolean canGenEmptyGrid, String confirmMessage) { this.canGenEmptyGrid = canGenEmptyGrid; this.confirmMessage = confirmMessage; @@ -74,6 +76,8 @@ public class SudokuSelector { int filled = this.doku.getFilledCells().size(); int total = this.doku.getCells().size(); this.genProgressBar.render(filled / (float) total); + if (genDone) + ImGui.closeCurrentPopup(); ImGui.endPopup(); } else { stopGenThread(); @@ -82,12 +86,14 @@ public class SudokuSelector { private void selectSudoku(MultiDoku doku, boolean empty) { this.doku = doku; + this.genDone = false; ImGui.openPopup("genProgress"); this.genThread = new Thread(() -> { try { if (!empty) { SudokuFactory.fillDoku(doku, Difficulty.values()[difficulty.get()]); } + this.genDone = true; this.onSelect.emit(this.doku); } catch (Exception e) { e.printStackTrace();