1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:47:34 +00:00

Move WindowServer to userspace.

This is a monster patch that required changing a whole bunch of things.
There are performance and stability issues all over the place, but it works.
Pretty cool, I have to admit :^)
This commit is contained in:
Andreas Kling 2019-02-17 00:13:47 +01:00
parent 0b1b21d622
commit 640360e958
41 changed files with 325 additions and 463 deletions

View file

@ -6,7 +6,6 @@
#include <AK/HashTable.h>
#include <AK/InlineLinkedList.h>
#include <AK/WeakPtr.h>
#include <AK/Lock.h>
#include <AK/HashMap.h>
#include "WSMessageReceiver.h"
#include "WSMenuBar.h"
@ -27,6 +26,10 @@ enum class IterationDecision { Continue, Abort };
class WSWindowManager : public WSMessageReceiver {
public:
static WSWindowManager& the();
WSWindowManager();
virtual ~WSWindowManager() override;
void add_window(WSWindow&);
void remove_window(WSWindow&);
@ -67,9 +70,6 @@ public:
void set_framebuffer_fd(int fd) { m_framebuffer_fd = fd; }
private:
WSWindowManager();
virtual ~WSWindowManager() override;
void process_mouse_event(WSMouseEvent&);
void handle_menu_mouse_event(WSMenu&, WSMouseEvent&);
void handle_menubar_mouse_event(WSMouseEvent&);
@ -139,12 +139,10 @@ private:
RetainPtr<Font> m_font;
Lockable<String> m_wallpaper_path;
String m_wallpaper_path;
RetainPtr<GraphicsBitmap> m_wallpaper;
mutable Lock m_lock;
Lockable<bool> m_flash_flush;
bool m_flash_flush { false };
bool m_buffers_are_flipped { false };
OwnPtr<WSMenu> m_system_menu;