mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-24 02:03:06 -05: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
Notes:
sideshowbarker
2024-07-19 11:32:49 +09:00
Author: https://github.com/xeons Commit: https://github.com/SerenityOS/serenity/commit/51e655f9033 Pull-request: https://github.com/SerenityOS/serenity/pull/688
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
Reference in a new issue