mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:38:11 +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