diff options
author | Andreas Kling <kling@serenityos.org> | 2021-03-30 23:30:50 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-03-30 23:43:24 +0200 |
commit | 0cd60a28ba0496e829f00b1e9f6d0c4052c637f4 (patch) | |
tree | 7c6d592cd953d0b963bd0ebeffdd58c320e57c3c /Userland/Libraries | |
parent | 9bbc1c9c930157ba89eb0c3554a67bf4bd6fe7cb (diff) | |
download | serenity-0cd60a28ba0496e829f00b1e9f6d0c4052c637f4.zip |
WindowServer+LibGUI: Plumb mouse/enter/leave events to applet windows
Since applet windows live in the applet area window, the AppletManager
has to keep track of which applet is hovered and send the appropriate
enter/leave events to the applet windows.
This makes applet tooltips work again. :^)
Diffstat (limited to 'Userland/Libraries')
-rw-r--r-- | Userland/Libraries/LibGUI/Widget.cpp | 2 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/Window.cpp | 4 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/Window.h | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/Userland/Libraries/LibGUI/Widget.cpp b/Userland/Libraries/LibGUI/Widget.cpp index 86bf5c8b9f..0a4b406949 100644 --- a/Userland/Libraries/LibGUI/Widget.cpp +++ b/Userland/Libraries/LibGUI/Widget.cpp @@ -599,7 +599,7 @@ Gfx::IntRect Widget::window_relative_rect() const Gfx::IntRect Widget::screen_relative_rect() const { auto window_position = window()->window_type() == WindowType::MenuApplet - ? window()->rect_in_menubar().location() + ? window()->applet_rect_on_screen().location() : window()->rect().location(); return window_relative_rect().translated(window_position); } diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index 23332112b1..e0ddab3d25 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -235,10 +235,10 @@ String Window::title() const return WindowServerConnection::the().send_sync<Messages::WindowServer::GetWindowTitle>(m_window_id)->title(); } -Gfx::IntRect Window::rect_in_menubar() const +Gfx::IntRect Window::applet_rect_on_screen() const { VERIFY(m_window_type == WindowType::MenuApplet); - return WindowServerConnection::the().send_sync<Messages::WindowServer::GetWindowRectInMenubar>(m_window_id)->rect(); + return WindowServerConnection::the().send_sync<Messages::WindowServer::GetAppletRectOnScreen>(m_window_id)->rect(); } Gfx::IntRect Window::rect() const diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index 306788d8e7..06bea7ef55 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -101,7 +101,7 @@ public: int height() const { return rect().height(); } Gfx::IntRect rect() const; - Gfx::IntRect rect_in_menubar() const; + Gfx::IntRect applet_rect_on_screen() const; Gfx::IntSize size() const { return rect().size(); } void set_rect(const Gfx::IntRect&); void set_rect(int x, int y, int width, int height) { set_rect({ x, y, width, height }); } |