@@ -240,6 +240,7 @@ static void setup_playfield(Minesweeper* minesweeper_state) {
240240 minesweeper_state -> flags_set = 0 ;
241241 minesweeper_state -> game_started_tick = furi_get_tick ();
242242 minesweeper_state -> game_started = false;
243+ minesweeper_state -> showing_dialog = false;
243244 }
244245}
245246
@@ -275,7 +276,6 @@ static bool game_lost(Minesweeper* minesweeper_state) {
275276
276277 DialogMessageButton choice = dialog_message_show (dialogs , message );
277278 dialog_message_free (message );
278- minesweeper_state -> showing_dialog = false;
279279 furi_record_close (RECORD_NOTIFICATION );
280280
281281 return choice == DialogMessageButtonCenter ;
@@ -307,7 +307,7 @@ static bool game_won(Minesweeper* minesweeper_state) {
307307
308308 DialogMessageButton choice = dialog_message_show (dialogs , message );
309309 dialog_message_free (message );
310- minesweeper_state -> showing_dialog = false;
310+ // minesweeper_state->showing_dialog = false;
311311 string_clear (tempStr );
312312 string_reset (tempStr );
313313 furi_record_close (RECORD_DIALOGS );
@@ -404,6 +404,12 @@ int32_t minesweeper_app(void* p) {
404404 for (bool processing = true; processing ;) {
405405 FuriStatus event_status = furi_message_queue_get (event_queue , & event , 100 );
406406 Minesweeper * minesweeper_state = (Minesweeper * )acquire_mutex_block (& state_mutex );
407+ if (minesweeper_state -> showing_dialog ) {
408+ // this should not happen.
409+ //release_mutex(&state_mutex, minesweeper_state);
410+ processing = false;
411+ //continue;
412+ }
407413 if (event_status == FuriStatusOk ) {
408414 // press events
409415 if (event .type == EventTypeKey ) {
0 commit comments