[FL-3118] Dumb mode menu freeze fix (#2456)

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Astra 2023-03-09 10:24:47 +02:00 committed by GitHub
parent 5be15152eb
commit 50ef5deefc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 0 deletions

View File

@ -144,11 +144,13 @@ void desktop_unlock(Desktop* desktop) {
} }
void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled) { void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled) {
desktop->in_transition = true;
view_port_enabled_set(desktop->dummy_mode_icon_viewport, enabled); view_port_enabled_set(desktop->dummy_mode_icon_viewport, enabled);
desktop_main_set_dummy_mode_state(desktop->main_view, enabled); desktop_main_set_dummy_mode_state(desktop->main_view, enabled);
animation_manager_set_dummy_mode_state(desktop->animation_manager, enabled); animation_manager_set_dummy_mode_state(desktop->animation_manager, enabled);
desktop->settings.dummy_mode = enabled; desktop->settings.dummy_mode = enabled;
DESKTOP_SETTINGS_SAVE(&desktop->settings); DESKTOP_SETTINGS_SAVE(&desktop->settings);
desktop->in_transition = false;
} }
Desktop* desktop_alloc() { Desktop* desktop_alloc() {

View File

@ -69,6 +69,8 @@ struct Desktop {
FuriPubSub* input_events_pubsub; FuriPubSub* input_events_pubsub;
FuriPubSubSubscription* input_events_subscription; FuriPubSubSubscription* input_events_subscription;
FuriTimer* auto_lock_timer; FuriTimer* auto_lock_timer;
bool in_transition;
}; };
Desktop* desktop_alloc(); Desktop* desktop_alloc();

View File

@ -79,6 +79,7 @@ static void desktop_scene_main_open_app_or_profile(Desktop* desktop, const char*
void desktop_scene_main_callback(DesktopEvent event, void* context) { void desktop_scene_main_callback(DesktopEvent event, void* context) {
Desktop* desktop = (Desktop*)context; Desktop* desktop = (Desktop*)context;
if(desktop->in_transition) return;
view_dispatcher_send_custom_event(desktop->view_dispatcher, event); view_dispatcher_send_custom_event(desktop->view_dispatcher, event);
} }