mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:12:45 +00:00 
			
		
		
		
	LibGUI: Added window creation callback to GApplication/GWindow
Added a window creation callback to GApplication that gets called by GWindow which will reset any pending exit request in the CEventLoop. This is to prevent a bug which prevents your application from starting up if you had a message box or other dialog before showing your main application form. The bug was triggered by there being no more visible windows which was triggering a premature quit().
This commit is contained in:
		
							parent
							
								
									5311f8fae1
								
							
						
					
					
						commit
						51e655f903
					
				
					 3 changed files with 8 additions and 0 deletions
				
			
		|  | @ -119,6 +119,12 @@ void GApplication::hide_tooltip() | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void GApplication::did_create_window(Badge<GWindow>) | ||||
| { | ||||
|     if (m_event_loop->was_exit_requested()) | ||||
|         m_event_loop->unquit(); | ||||
| } | ||||
| 
 | ||||
| void GApplication::did_delete_last_window(Badge<GWindow>) | ||||
| { | ||||
|     if (m_quit_when_last_window_deleted) | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ public: | |||
|     bool quit_when_last_window_deleted() const { return m_quit_when_last_window_deleted; } | ||||
|     void set_quit_when_last_window_deleted(bool b) { m_quit_when_last_window_deleted = b; } | ||||
| 
 | ||||
|     void did_create_window(Badge<GWindow>); | ||||
|     void did_delete_last_window(Badge<GWindow>); | ||||
| 
 | ||||
|     const String& invoked_as() const { return m_invoked_as; } | ||||
|  |  | |||
|  | @ -84,6 +84,7 @@ void GWindow::show() | |||
|     apply_icon(); | ||||
| 
 | ||||
|     reified_windows.set(m_window_id, this); | ||||
|     GApplication::the().did_create_window({}); | ||||
|     update(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Brandon Scott
						Brandon Scott