diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-09-22 20:50:39 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-22 20:50:39 +0200 |
commit | 34d0e96aec89ea643cd5eb3e279a46a7542aac64 (patch) | |
tree | 60b998f4e1d2a27ed7d322aa39530f9c705aec27 | |
parent | edac8704de561c30f225e148e31c641fd53db079 (diff) | |
download | serenity-34d0e96aec89ea643cd5eb3e279a46a7542aac64.zip |
LibCore+LibGUI: Remove GEventLoop and use CEventLoop everywhere
GEventLoop was just a dummy subclass of CEventLoop anyway. The only
thing it actually did was make sure a GWindowServerConnectionw was
instantiated. We now take care of that in GApplication instead.
CEventLoop is now non-virtual and a little less confusing. :^)
-rw-r--r-- | Applications/Piano/main.cpp | 4 | ||||
-rw-r--r-- | Libraries/LibCore/CEventLoop.cpp | 1 | ||||
-rw-r--r-- | Libraries/LibCore/CEventLoop.h | 2 | ||||
-rw-r--r-- | Libraries/LibGUI/GApplication.cpp | 3 | ||||
-rw-r--r-- | Libraries/LibGUI/GApplication.h | 4 | ||||
-rw-r--r-- | Libraries/LibGUI/GDialog.cpp | 5 | ||||
-rw-r--r-- | Libraries/LibGUI/GDialog.h | 4 | ||||
-rw-r--r-- | Libraries/LibGUI/GEventLoop.cpp | 11 | ||||
-rw-r--r-- | Libraries/LibGUI/GEventLoop.h | 11 | ||||
-rw-r--r-- | Libraries/LibGUI/GWindow.cpp | 8 | ||||
-rw-r--r-- | Userland/copy.cpp | 6 | ||||
-rw-r--r-- | Userland/paste.cpp | 6 |
12 files changed, 23 insertions, 42 deletions
diff --git a/Applications/Piano/main.cpp b/Applications/Piano/main.cpp index 0f84679b84..4917a3cbad 100644 --- a/Applications/Piano/main.cpp +++ b/Applications/Piano/main.cpp @@ -37,8 +37,8 @@ int main(int argc, char** argv) u8 buffer[4096]; piano_widget->fill_audio_buffer(buffer, sizeof(buffer)); audio->write(buffer, sizeof(buffer)); - GEventLoop::current().post_event(*piano_widget, make<CCustomEvent>(0)); - GEventLoop::wake(); + CEventLoop::current().post_event(*piano_widget, make<CCustomEvent>(0)); + CEventLoop::wake(); } }); sound_thread.start(); diff --git a/Libraries/LibCore/CEventLoop.cpp b/Libraries/LibCore/CEventLoop.cpp index 68ef3bd753..17be63d020 100644 --- a/Libraries/LibCore/CEventLoop.cpp +++ b/Libraries/LibCore/CEventLoop.cpp @@ -181,6 +181,7 @@ CEventLoop& CEventLoop::current() void CEventLoop::quit(int code) { + dbg() << "CEventLoop::quit(" << code << ")"; m_exit_requested = true; m_exit_code = code; } diff --git a/Libraries/LibCore/CEventLoop.h b/Libraries/LibCore/CEventLoop.h index 16538e2c48..d4de3fc211 100644 --- a/Libraries/LibCore/CEventLoop.h +++ b/Libraries/LibCore/CEventLoop.h @@ -18,7 +18,7 @@ class CNotifier; class CEventLoop { public: CEventLoop(); - virtual ~CEventLoop(); + ~CEventLoop(); int exec(); diff --git a/Libraries/LibGUI/GApplication.cpp b/Libraries/LibGUI/GApplication.cpp index ca2c0b061d..770204e1a9 100644 --- a/Libraries/LibGUI/GApplication.cpp +++ b/Libraries/LibGUI/GApplication.cpp @@ -21,7 +21,8 @@ GApplication::GApplication(int argc, char** argv) (void)argv; ASSERT(!s_the); s_the = this; - m_event_loop = make<GEventLoop>(); + m_event_loop = make<CEventLoop>(); + GWindowServerConnection::the(); } GApplication::~GApplication() diff --git a/Libraries/LibGUI/GApplication.h b/Libraries/LibGUI/GApplication.h index 4b571cc6da..d217de75d4 100644 --- a/Libraries/LibGUI/GApplication.h +++ b/Libraries/LibGUI/GApplication.h @@ -5,8 +5,8 @@ #include <AK/OwnPtr.h> #include <LibGUI/GShortcut.h> +class CEventLoop; class GAction; -class GEventLoop; class GKeyEvent; class GMenuBar; class GWindow; @@ -36,7 +36,7 @@ public: void did_delete_last_window(Badge<GWindow>); private: - OwnPtr<GEventLoop> m_event_loop; + OwnPtr<CEventLoop> m_event_loop; OwnPtr<GMenuBar> m_menubar; HashMap<GShortcut, GAction*> m_global_shortcut_actions; class TooltipWindow; diff --git a/Libraries/LibGUI/GDialog.cpp b/Libraries/LibGUI/GDialog.cpp index a3cd4a5e0f..1db0fbadf4 100644 --- a/Libraries/LibGUI/GDialog.cpp +++ b/Libraries/LibGUI/GDialog.cpp @@ -1,12 +1,10 @@ #include <LibGUI/GDesktop.h> #include <LibGUI/GDialog.h> -#include <LibGUI/GEventLoop.h> GDialog::GDialog(CObject* parent) : GWindow(parent) { set_modal(true); - } GDialog::~GDialog() @@ -16,7 +14,7 @@ GDialog::~GDialog() int GDialog::exec() { ASSERT(!m_event_loop); - m_event_loop = make<GEventLoop>(); + m_event_loop = make<CEventLoop>(); auto new_rect = rect(); if (parent() && parent()->is_window()) { auto& parent_window = *static_cast<GWindow*>(parent()); @@ -47,4 +45,3 @@ void GDialog::close() GWindow::close(); m_event_loop->quit(ExecCancel); } - diff --git a/Libraries/LibGUI/GDialog.h b/Libraries/LibGUI/GDialog.h index 6b3bbb7f04..581d2b406e 100644 --- a/Libraries/LibGUI/GDialog.h +++ b/Libraries/LibGUI/GDialog.h @@ -1,6 +1,6 @@ #pragma once -#include <LibGUI/GEventLoop.h> +#include <LibCore/CEventLoop.h> #include <LibGUI/GWindow.h> class GDialog : public GWindow { @@ -25,6 +25,6 @@ protected: explicit GDialog(CObject* parent); private: - OwnPtr<GEventLoop> m_event_loop; + OwnPtr<CEventLoop> m_event_loop; int m_result { ExecAborted }; }; diff --git a/Libraries/LibGUI/GEventLoop.cpp b/Libraries/LibGUI/GEventLoop.cpp index 2d3c5e3d5d..2736a2a3ad 100644 --- a/Libraries/LibGUI/GEventLoop.cpp +++ b/Libraries/LibGUI/GEventLoop.cpp @@ -43,17 +43,6 @@ void GWindowServerConnection::handshake() handle_greeting(response); } -GEventLoop::GEventLoop() -{ - // ensure the WS connection is up, as our users might be expecting it to be - // valid very early (via e.g. GDesktop) :) - GWindowServerConnection::the(); -} - -GEventLoop::~GEventLoop() -{ -} - void GWindowServerConnection::handle_paint_event(const WSAPI_ServerMessage& event, GWindow& window, const ByteBuffer& extra_data) { #ifdef GEVENTLOOP_DEBUG diff --git a/Libraries/LibGUI/GEventLoop.h b/Libraries/LibGUI/GEventLoop.h index 8171300216..522dcb9bcd 100644 --- a/Libraries/LibGUI/GEventLoop.h +++ b/Libraries/LibGUI/GEventLoop.h @@ -33,14 +33,3 @@ private: void handle_wm_event(const WSAPI_ServerMessage&, GWindow&); void handle_greeting(WSAPI_ServerMessage&); }; - -class GEventLoop final : public CEventLoop { -public: - GEventLoop(); - virtual ~GEventLoop() override; - - static GEventLoop& current() { return static_cast<GEventLoop&>(CEventLoop::current()); } - -private: - void process_unprocessed_bundles(); -}; diff --git a/Libraries/LibGUI/GWindow.cpp b/Libraries/LibGUI/GWindow.cpp index 59fe675d07..c05f7fe4b4 100644 --- a/Libraries/LibGUI/GWindow.cpp +++ b/Libraries/LibGUI/GWindow.cpp @@ -497,12 +497,12 @@ void GWindow::set_focused_widget(GWidget* widget) if (m_focused_widget == widget) return; if (m_focused_widget) { - GEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusOut)); + CEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusOut)); m_focused_widget->update(); } m_focused_widget = widget ? widget->make_weak_ptr() : nullptr; if (m_focused_widget) { - GEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusIn)); + CEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusIn)); m_focused_widget->update(); } } @@ -567,12 +567,12 @@ void GWindow::set_hovered_widget(GWidget* widget) return; if (m_hovered_widget) - GEventLoop::current().post_event(*m_hovered_widget, make<GEvent>(GEvent::Leave)); + CEventLoop::current().post_event(*m_hovered_widget, make<GEvent>(GEvent::Leave)); m_hovered_widget = widget ? widget->make_weak_ptr() : nullptr; if (m_hovered_widget) - GEventLoop::current().post_event(*m_hovered_widget, make<GEvent>(GEvent::Enter)); + CEventLoop::current().post_event(*m_hovered_widget, make<GEvent>(GEvent::Enter)); } void GWindow::set_current_backing_bitmap(GraphicsBitmap& bitmap, bool flush_immediately) diff --git a/Userland/copy.cpp b/Userland/copy.cpp index ddad0a5ffa..2887bec3fc 100644 --- a/Userland/copy.cpp +++ b/Userland/copy.cpp @@ -1,10 +1,12 @@ #include <AK/ByteBuffer.h> #include <AK/String.h> #include <AK/StringBuilder.h> +#include <LibCore/CEventLoop.h> #include <LibCore/CFile.h> #include <LibGUI/GClipboard.h> -#include <LibGUI/GEventLoop.h> #include <getopt.h> +#include <stdio.h> +#include <stdlib.h> struct Options { String data; @@ -86,7 +88,7 @@ int main(int argc, char* argv[]) { Options options = parse_options(argc, argv); - new GEventLoop; + CEventLoop loop; GClipboard& clipboard = GClipboard::the(); clipboard.set_data(options.data, options.type); diff --git a/Userland/paste.cpp b/Userland/paste.cpp index 2b5acce5d3..947463dd37 100644 --- a/Userland/paste.cpp +++ b/Userland/paste.cpp @@ -1,7 +1,9 @@ #include <AK/String.h> +#include <LibCore/CEventLoop.h> #include <LibGUI/GClipboard.h> -#include <LibGUI/GEventLoop.h> #include <getopt.h> +#include <stdio.h> +#include <stdlib.h> struct Options { bool print_type { false }; @@ -62,7 +64,7 @@ int main(int argc, char* argv[]) { Options options = parse_options(argc, argv); - new GEventLoop; + CEventLoop loop; GClipboard& clipboard = GClipboard::the(); auto data_and_type = clipboard.data_and_type(); |