1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 09:57:34 +00:00

WindowServer: Add a dedicated drag cursor

This commit is contained in:
Andreas Kling 2019-12-08 20:28:48 +01:00
parent 8423be2593
commit 39c2d04a9b
6 changed files with 10 additions and 0 deletions

View file

@ -12,6 +12,7 @@ IBeam=/res/cursors/i-beam.png
Disallowed=/res/cursors/disallowed.png Disallowed=/res/cursors/disallowed.png
Move=/res/cursors/move.png Move=/res/cursors/move.png
Hand=/res/cursors/hand.png Hand=/res/cursors/hand.png
Drag=/res/cursors/drag.png
[Colors] [Colors]
Background=50,50,50 Background=50,50,50

BIN
Base/res/cursors/drag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View file

@ -40,6 +40,8 @@ RefPtr<WSCursor> WSCursor::create(WSStandardCursor standard_cursor)
return WSWindowManager::the().resize_diagonally_bltr_cursor(); return WSWindowManager::the().resize_diagonally_bltr_cursor();
case WSStandardCursor::Hand: case WSStandardCursor::Hand:
return WSWindowManager::the().hand_cursor(); return WSWindowManager::the().hand_cursor();
case WSStandardCursor::Drag:
return WSWindowManager::the().drag_cursor();
} }
ASSERT_NOT_REACHED(); ASSERT_NOT_REACHED();
} }

View file

@ -11,6 +11,7 @@ enum class WSStandardCursor {
ResizeDiagonalTLBR, ResizeDiagonalTLBR,
ResizeDiagonalBLTR, ResizeDiagonalBLTR,
Hand, Hand,
Drag,
}; };
class WSCursor : public RefCounted<WSCursor> { class WSCursor : public RefCounted<WSCursor> {

View file

@ -185,6 +185,7 @@ void WSWindowManager::reload_config(bool set_screen)
m_i_beam_cursor = get_cursor("IBeam"); m_i_beam_cursor = get_cursor("IBeam");
m_disallowed_cursor = get_cursor("Disallowed"); m_disallowed_cursor = get_cursor("Disallowed");
m_move_cursor = get_cursor("Move"); m_move_cursor = get_cursor("Move");
m_drag_cursor = get_cursor("Drag");
m_background_color = m_wm_config->read_color_entry("Colors", "Background", Color::Red); m_background_color = m_wm_config->read_color_entry("Colors", "Background", Color::Red);
@ -1103,6 +1104,9 @@ void WSWindowManager::notify_client_changed_app_menubar(WSClientConnection& clie
const WSCursor& WSWindowManager::active_cursor() const const WSCursor& WSWindowManager::active_cursor() const
{ {
if (m_dnd_client)
return *m_drag_cursor;
if (m_drag_window) if (m_drag_window)
return *m_move_cursor; return *m_move_cursor;

View file

@ -103,6 +103,7 @@ public:
const WSCursor& i_beam_cursor() const { return *m_i_beam_cursor; } const WSCursor& i_beam_cursor() const { return *m_i_beam_cursor; }
const WSCursor& disallowed_cursor() const { return *m_disallowed_cursor; } const WSCursor& disallowed_cursor() const { return *m_disallowed_cursor; }
const WSCursor& move_cursor() const { return *m_move_cursor; } const WSCursor& move_cursor() const { return *m_move_cursor; }
const WSCursor& drag_cursor() const { return *m_drag_cursor; }
void invalidate(const WSWindow&); void invalidate(const WSWindow&);
void invalidate(const WSWindow&, const Rect&); void invalidate(const WSWindow&, const Rect&);
@ -196,6 +197,7 @@ private:
RefPtr<WSCursor> m_i_beam_cursor; RefPtr<WSCursor> m_i_beam_cursor;
RefPtr<WSCursor> m_disallowed_cursor; RefPtr<WSCursor> m_disallowed_cursor;
RefPtr<WSCursor> m_move_cursor; RefPtr<WSCursor> m_move_cursor;
RefPtr<WSCursor> m_drag_cursor;
Color m_background_color; Color m_background_color;
Color m_active_window_border_color; Color m_active_window_border_color;