[FL-3118] Dumb mode menu freeze fix (#2456)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							parent
							
								
									5be15152eb
								
							
						
					
					
						commit
						50ef5deefc
					
				| @ -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() { | ||||||
|  | |||||||
| @ -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(); | ||||||
|  | |||||||
| @ -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); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Astra
						Astra