summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-09-22 20:50:39 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-09-22 20:50:39 +0200
commit34d0e96aec89ea643cd5eb3e279a46a7542aac64 (patch)
tree60b998f4e1d2a27ed7d322aa39530f9c705aec27
parentedac8704de561c30f225e148e31c641fd53db079 (diff)
downloadserenity-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.cpp4
-rw-r--r--Libraries/LibCore/CEventLoop.cpp1
-rw-r--r--Libraries/LibCore/CEventLoop.h2
-rw-r--r--Libraries/LibGUI/GApplication.cpp3
-rw-r--r--Libraries/LibGUI/GApplication.h4
-rw-r--r--Libraries/LibGUI/GDialog.cpp5
-rw-r--r--Libraries/LibGUI/GDialog.h4
-rw-r--r--Libraries/LibGUI/GEventLoop.cpp11
-rw-r--r--Libraries/LibGUI/GEventLoop.h11
-rw-r--r--Libraries/LibGUI/GWindow.cpp8
-rw-r--r--Userland/copy.cpp6
-rw-r--r--Userland/paste.cpp6
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();