From 72a3f69df77465049387764bf29c0d0a92803a43 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 23 Jul 2019 18:20:00 +0200 Subject: [PATCH] LibGUI: Get rid of GWindow::should_exit_event_loop_on_close(). This behavior and API was extremely counter-intuitive since our default behavior was for applications to never exit after you close all of their windows. Now that we exit the event loop by default when the very last GWindow is deleted, we don't have to worry about this. --- Applications/About/main.cpp | 1 - Applications/FileManager/main.cpp | 1 - Applications/FontEditor/main.cpp | 1 - Applications/IRCClient/main.cpp | 1 - Applications/Launcher/main.cpp | 1 - Applications/PaintBrush/main.cpp | 1 - Applications/Piano/main.cpp | 1 - Applications/ProcessManager/main.cpp | 4 ++-- Applications/QuickShow/main.cpp | 3 +-- Applications/Taskbar/TaskbarWindow.cpp | 1 - Applications/Terminal/main.cpp | 1 - Applications/TextEditor/main.cpp | 3 +-- Demos/Fire/Fire.cpp | 3 +-- DevTools/VisualBuilder/main.cpp | 2 +- Games/Minesweeper/main.cpp | 1 - Games/Snake/main.cpp | 2 +- Libraries/LibGUI/GDialog.cpp | 2 +- Libraries/LibGUI/GWindow.cpp | 2 -- Libraries/LibGUI/GWindow.h | 4 ---- 19 files changed, 8 insertions(+), 27 deletions(-) diff --git a/Applications/About/main.cpp b/Applications/About/main.cpp index 8b29c89b3c..c948aea0f1 100644 --- a/Applications/About/main.cpp +++ b/Applications/About/main.cpp @@ -16,7 +16,6 @@ int main(int argc, char** argv) window_rect.center_within(GDesktop::the().rect()); window->set_resizable(false); window->set_rect(window_rect); - window->set_should_exit_event_loop_on_close(true); auto* widget = new GWidget; window->set_main_widget(widget); diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index e18c3067e5..f8403c7e68 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -39,7 +39,6 @@ int main(int argc, char** argv) auto* window = new GWindow; window->set_title("File Manager"); window->set_rect(20, 200, 640, 480); - window->set_should_exit_event_loop_on_close(true); auto* widget = new GWidget; widget->set_layout(make(Orientation::Vertical)); diff --git a/Applications/FontEditor/main.cpp b/Applications/FontEditor/main.cpp index 96aaf1af44..58ba0ba563 100644 --- a/Applications/FontEditor/main.cpp +++ b/Applications/FontEditor/main.cpp @@ -29,7 +29,6 @@ int main(int argc, char** argv) window->set_rect({ 50, 50, 390, 342 }); auto* font_editor = new FontEditorWidget(path, move(edited_font)); window->set_main_widget(font_editor); - window->set_should_exit_event_loop_on_close(true); window->show(); window->set_icon_path("/res/icons/16x16/app-font-editor.png"); return app.exec(); diff --git a/Applications/IRCClient/main.cpp b/Applications/IRCClient/main.cpp index a3a670ad5a..02f00c226a 100644 --- a/Applications/IRCClient/main.cpp +++ b/Applications/IRCClient/main.cpp @@ -8,7 +8,6 @@ int main(int argc, char** argv) GApplication app(argc, argv); IRCAppWindow app_window; - app_window.set_should_exit_event_loop_on_close(true); app_window.show(); printf("Entering main loop...\n"); diff --git a/Applications/Launcher/main.cpp b/Applications/Launcher/main.cpp index 3884232352..d6d2954f94 100644 --- a/Applications/Launcher/main.cpp +++ b/Applications/Launcher/main.cpp @@ -30,7 +30,6 @@ int main(int argc, char** argv) signal(SIGCHLD, handle_sigchld); auto* launcher_window = make_launcher_window(); - launcher_window->set_should_exit_event_loop_on_close(true); launcher_window->show(); return app.exec(); diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp index f03ab4462d..19026e7f32 100644 --- a/Applications/PaintBrush/main.cpp +++ b/Applications/PaintBrush/main.cpp @@ -18,7 +18,6 @@ int main(int argc, char** argv) auto* window = new GWindow; window->set_title("PaintBrush"); window->set_rect(100, 100, 640, 480); - window->set_should_exit_event_loop_on_close(true); auto* horizontal_container = new GWidget(nullptr); window->set_main_widget(horizontal_container); diff --git a/Applications/Piano/main.cpp b/Applications/Piano/main.cpp index 6cf69af29a..ddc5ccb8a6 100644 --- a/Applications/Piano/main.cpp +++ b/Applications/Piano/main.cpp @@ -16,7 +16,6 @@ int main(int argc, char** argv) auto* window = new GWindow; window->set_title("Piano"); window->set_rect(100, 100, 512, 512); - window->set_should_exit_event_loop_on_close(true); auto* piano_widget = new PianoWidget; window->set_main_widget(piano_widget); diff --git a/Applications/ProcessManager/main.cpp b/Applications/ProcessManager/main.cpp index dd5193b21b..925d67ad07 100644 --- a/Applications/ProcessManager/main.cpp +++ b/Applications/ProcessManager/main.cpp @@ -119,7 +119,7 @@ int main(int argc, char** argv) process_context_menu->add_action(stop_action); process_context_menu->add_action(continue_action); process_table_view->on_context_menu_request = [&](const GModelIndex& index, const GContextMenuEvent& event) { - (void) index; + (void)index; process_context_menu->popup(event.screen_position()); }; @@ -153,7 +153,7 @@ int main(int argc, char** argv) window->set_title("Process Manager"); window->set_rect(20, 200, 680, 400); window->set_main_widget(keeper); - window->set_should_exit_event_loop_on_close(true); + window->show(); window->set_icon_path("/res/icons/16x16/app-process-manager.png"); diff --git a/Applications/QuickShow/main.cpp b/Applications/QuickShow/main.cpp index 47040ff21a..e985a4ff66 100644 --- a/Applications/QuickShow/main.cpp +++ b/Applications/QuickShow/main.cpp @@ -1,4 +1,5 @@ #include "QSWidget.h" +#include #include #include #include @@ -6,7 +7,6 @@ #include #include #include -#include #include int main(int argc, char** argv) @@ -67,7 +67,6 @@ int main(int argc, char** argv) widget->set_bitmap(*bitmap); window->set_main_widget(widget); - window->set_should_exit_event_loop_on_close(true); window->show(); return app.exec(); diff --git a/Applications/Taskbar/TaskbarWindow.cpp b/Applications/Taskbar/TaskbarWindow.cpp index f25e997dc1..ff1a054d23 100644 --- a/Applications/Taskbar/TaskbarWindow.cpp +++ b/Applications/Taskbar/TaskbarWindow.cpp @@ -15,7 +15,6 @@ TaskbarWindow::TaskbarWindow() { set_window_type(GWindowType::Taskbar); set_title("Taskbar"); - set_should_exit_event_loop_on_close(true); on_screen_rect_change(GDesktop::the().rect()); diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index 624e85f2cb..3be7ae441e 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -146,7 +146,6 @@ int main(int argc, char** argv) window->set_title("Terminal"); window->set_background_color(Color::Black); window->set_double_buffering_enabled(false); - window->set_should_exit_event_loop_on_close(true); RefPtr config = CConfigFile::get_for_app("Terminal"); Terminal terminal(ptm_fd, config); diff --git a/Applications/TextEditor/main.cpp b/Applications/TextEditor/main.cpp index 68a402d452..680399603b 100644 --- a/Applications/TextEditor/main.cpp +++ b/Applications/TextEditor/main.cpp @@ -7,7 +7,6 @@ int main(int argc, char** argv) auto* window = new GWindow; window->set_title("Text Editor"); window->set_rect(20, 200, 640, 400); - window->set_should_exit_event_loop_on_close(true); auto* text_widget = new TextEditorWidget(); window->set_main_widget(text_widget); @@ -19,4 +18,4 @@ int main(int argc, char** argv) window->set_icon_path("/res/icons/TextEditor16.png"); return app.exec(); -} \ No newline at end of file +} diff --git a/Demos/Fire/Fire.cpp b/Demos/Fire/Fire.cpp index de223b2b26..13b28ebf1f 100644 --- a/Demos/Fire/Fire.cpp +++ b/Demos/Fire/Fire.cpp @@ -16,12 +16,12 @@ * [ ] handle fire bitmap edges better */ +#include #include #include #include #include #include -#include #include #include #include @@ -214,7 +214,6 @@ int main(int argc, char** argv) GApplication app(argc, argv); auto* window = new GWindow; - window->set_should_exit_event_loop_on_close(true); window->set_double_buffering_enabled(false); window->set_title("Fire"); window->set_resizable(false); diff --git a/DevTools/VisualBuilder/main.cpp b/DevTools/VisualBuilder/main.cpp index e019291082..b456573e56 100644 --- a/DevTools/VisualBuilder/main.cpp +++ b/DevTools/VisualBuilder/main.cpp @@ -60,7 +60,7 @@ int main(int argc, char** argv) window->set_title(form1->name()); window->set_rect(120, 200, 640, 400); window->set_main_widget(form1); - window->set_should_exit_event_loop_on_close(true); + window->show(); auto* toolbox = make_toolbox_window(); diff --git a/Games/Minesweeper/main.cpp b/Games/Minesweeper/main.cpp index 42029fcfd9..a66f53c06d 100644 --- a/Games/Minesweeper/main.cpp +++ b/Games/Minesweeper/main.cpp @@ -14,7 +14,6 @@ int main(int argc, char** argv) GApplication app(argc, argv); auto* window = new GWindow; - window->set_should_exit_event_loop_on_close(true); window->set_resizable(false); window->set_title("Minesweeper"); window->set_rect(100, 100, 139, 175); diff --git a/Games/Snake/main.cpp b/Games/Snake/main.cpp index 36f923437a..0514cf92d7 100644 --- a/Games/Snake/main.cpp +++ b/Games/Snake/main.cpp @@ -12,7 +12,7 @@ int main(int argc, char** argv) GApplication app(argc, argv); auto* window = new GWindow; - window->set_should_exit_event_loop_on_close(true); + window->set_double_buffering_enabled(false); window->set_title("Snake"); window->set_rect(100, 100, 320, 320); diff --git a/Libraries/LibGUI/GDialog.cpp b/Libraries/LibGUI/GDialog.cpp index 4de55f8c95..7438e41b2e 100644 --- a/Libraries/LibGUI/GDialog.cpp +++ b/Libraries/LibGUI/GDialog.cpp @@ -6,7 +6,7 @@ GDialog::GDialog(CObject* parent) : GWindow(parent) { set_modal(true); - set_should_exit_event_loop_on_close(true); + } GDialog::~GDialog() diff --git a/Libraries/LibGUI/GWindow.cpp b/Libraries/LibGUI/GWindow.cpp index eeff1bcb75..070fc5d42f 100644 --- a/Libraries/LibGUI/GWindow.cpp +++ b/Libraries/LibGUI/GWindow.cpp @@ -46,8 +46,6 @@ GWindow::~GWindow() void GWindow::close() { - if (should_exit_event_loop_on_close()) - GEventLoop::current().quit(0); if (should_destroy_on_close()) delete_later(); } diff --git a/Libraries/LibGUI/GWindow.h b/Libraries/LibGUI/GWindow.h index 5101a2430c..0ea7a15ce3 100644 --- a/Libraries/LibGUI/GWindow.h +++ b/Libraries/LibGUI/GWindow.h @@ -104,9 +104,6 @@ public: GWidget* automatic_cursor_tracking_widget() { return m_automatic_cursor_tracking_widget.ptr(); } const GWidget* automatic_cursor_tracking_widget() const { return m_automatic_cursor_tracking_widget.ptr(); } - bool should_exit_event_loop_on_close() const { return m_should_exit_app_on_close; } - void set_should_exit_event_loop_on_close(bool b) { m_should_exit_app_on_close = b; } - GWidget* hovered_widget() { return m_hovered_widget.ptr(); } const GWidget* hovered_widget() const { return m_hovered_widget.ptr(); } void set_hovered_widget(GWidget*); @@ -160,7 +157,6 @@ private: Color m_background_color { Color::WarmGray }; GWindowType m_window_type { GWindowType::Normal }; bool m_is_active { false }; - bool m_should_exit_app_on_close { false }; bool m_destroy_on_close { true }; bool m_has_alpha_channel { false }; bool m_double_buffering_enabled { true };