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>) | void GApplication::did_delete_last_window(Badge<GWindow>) | ||||||
| { | { | ||||||
|     if (m_quit_when_last_window_deleted) |     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; } |     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 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>); |     void did_delete_last_window(Badge<GWindow>); | ||||||
| 
 | 
 | ||||||
|     const String& invoked_as() const { return m_invoked_as; } |     const String& invoked_as() const { return m_invoked_as; } | ||||||
|  |  | ||||||
|  | @ -84,6 +84,7 @@ void GWindow::show() | ||||||
|     apply_icon(); |     apply_icon(); | ||||||
| 
 | 
 | ||||||
|     reified_windows.set(m_window_id, this); |     reified_windows.set(m_window_id, this); | ||||||
|  |     GApplication::the().did_create_window({}); | ||||||
|     update(); |     update(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Brandon Scott
						Brandon Scott