From fb5ea8a21207189cca3de8af3e9886dfde983179 Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Mon, 2 Nov 2020 06:28:14 +0000 Subject: [PATCH] WindowServer+LibGfx: Add Gfx::StandardCursor::Hidden cursor --- Base/etc/WindowServer/WindowServer.ini | 1 + Base/res/cursors/hidden.png | Bin 0 -> 128 bytes Libraries/LibGfx/StandardCursor.h | 1 + Services/WindowServer/Cursor.cpp | 2 ++ Services/WindowServer/WindowManager.cpp | 1 + Services/WindowServer/WindowManager.h | 2 ++ 6 files changed, 7 insertions(+) create mode 100644 Base/res/cursors/hidden.png diff --git a/Base/etc/WindowServer/WindowServer.ini b/Base/etc/WindowServer/WindowServer.ini index 37bdcee053..9120a3dbd0 100644 --- a/Base/etc/WindowServer/WindowServer.ini +++ b/Base/etc/WindowServer/WindowServer.ini @@ -6,6 +6,7 @@ Height=768 Name=Default [Cursor] +Hidden=/res/cursors/hidden.png Arrow=/res/cursors/arrow.png ResizeH=/res/cursors/resize-horizontal.png ResizeV=/res/cursors/resize-vertical.png diff --git a/Base/res/cursors/hidden.png b/Base/res/cursors/hidden.png new file mode 100644 index 0000000000000000000000000000000000000000..96382d8740a96483280a70998a256b4b9890cbf8 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0y~yU|`%BE#dtZRw(Q9U8|mU0!f`!0At51wfq{XQ Wfidp0mK6g71B0ilpUXO@geCy%j2-^~ literal 0 HcmV?d00001 diff --git a/Libraries/LibGfx/StandardCursor.h b/Libraries/LibGfx/StandardCursor.h index a1125e06d5..7bdd1a6204 100644 --- a/Libraries/LibGfx/StandardCursor.h +++ b/Libraries/LibGfx/StandardCursor.h @@ -30,6 +30,7 @@ namespace Gfx { enum class StandardCursor { None = 0, + Hidden, Arrow, Crosshair, IBeam, diff --git a/Services/WindowServer/Cursor.cpp b/Services/WindowServer/Cursor.cpp index d69ec8a14c..78d5bff74e 100644 --- a/Services/WindowServer/Cursor.cpp +++ b/Services/WindowServer/Cursor.cpp @@ -54,6 +54,8 @@ RefPtr Cursor::create(Gfx::StandardCursor standard_cursor) switch (standard_cursor) { case Gfx::StandardCursor::None: return nullptr; + case Gfx::StandardCursor::Hidden: + return WindowManager::the().hidden_cursor(); case Gfx::StandardCursor::Arrow: return WindowManager::the().arrow_cursor(); case Gfx::StandardCursor::Crosshair: diff --git a/Services/WindowServer/WindowManager.cpp b/Services/WindowServer/WindowManager.cpp index 668a0b1580..35543d5c76 100644 --- a/Services/WindowServer/WindowManager.cpp +++ b/Services/WindowServer/WindowManager.cpp @@ -112,6 +112,7 @@ void WindowManager::reload_config(bool set_screen) set_resolution(m_config->read_num_entry("Screen", "Width", 1920), m_config->read_num_entry("Screen", "Height", 1080)); } + m_hidden_cursor = get_cursor("Hidden"); m_arrow_cursor = get_cursor("Arrow", { 2, 2 }); m_hand_cursor = get_cursor("Hand", { 8, 4 }); m_help_cursor = get_cursor("Help", { 1, 1 }); diff --git a/Services/WindowServer/WindowManager.h b/Services/WindowServer/WindowManager.h index 96c1ada58b..3e2b587e19 100644 --- a/Services/WindowServer/WindowManager.h +++ b/Services/WindowServer/WindowManager.h @@ -123,6 +123,7 @@ public: Gfx::IntRect desktop_rect() const; const Cursor& active_cursor() const; + const Cursor& hidden_cursor() const { return *m_hidden_cursor; } const Cursor& arrow_cursor() const { return *m_arrow_cursor; } const Cursor& crosshair_cursor() const { return *m_crosshair_cursor; } const Cursor& hand_cursor() const { return *m_hand_cursor; } @@ -247,6 +248,7 @@ private: void do_move_to_front(Window&, bool, bool); + RefPtr m_hidden_cursor; RefPtr m_arrow_cursor; RefPtr m_hand_cursor; RefPtr m_help_cursor;