Jelajahi Sumber

LibGUI: Fix Widget::screen_relative_rect() for WindowType::MenuApplet

This was using window()->position(), which is unset for windows with
WindowType::MenuApplet. Now it checks the window type and then uses
rect_in_menubar() for MenuApplet windows and rect() for everything else.

This makes tooltips show up for MenuApplet windows, previously they were
positioned off-screen :^)
Linus Groh 5 tahun lalu
induk
melakukan
e77991e63a
1 mengubah file dengan 4 tambahan dan 1 penghapusan
  1. 4 1
      Libraries/LibGUI/Widget.cpp

+ 4 - 1
Libraries/LibGUI/Widget.cpp

@@ -464,7 +464,10 @@ Gfx::IntRect Widget::window_relative_rect() const
 
 
 Gfx::IntRect Widget::screen_relative_rect() const
 Gfx::IntRect Widget::screen_relative_rect() const
 {
 {
-    return window_relative_rect().translated(window()->position());
+    auto window_position = window()->window_type() == WindowType::MenuApplet
+        ? window()->rect_in_menubar().location()
+        : window()->rect().location();
+    return window_relative_rect().translated(window_position);
 }
 }
 
 
 Widget* Widget::child_at(const Gfx::IntPoint& point) const
 Widget* Widget::child_at(const Gfx::IntPoint& point) const