Browse Source

LibGUI: Don't fire visibility-tracking timers in non-visible widgets

We were already avoiding firing timers within non-visible *windows*.
This patch extends the mechanism to support timers within non-visible
*widgets*.
Andreas Kling 4 years ago
parent
commit
27fecf57bd
2 changed files with 7 additions and 0 deletions
  1. 5 0
      Userland/Libraries/LibGUI/Widget.cpp
  2. 2 0
      Userland/Libraries/LibGUI/Widget.h

+ 5 - 0
Userland/Libraries/LibGUI/Widget.cpp

@@ -1114,4 +1114,9 @@ bool Widget::has_pending_drop() const
     return Application::the()->pending_drop_widget() == this;
     return Application::the()->pending_drop_widget() == this;
 }
 }
 
 
+bool Widget::is_visible_for_timer_purposes() const
+{
+    return is_visible();
+}
+
 }
 }

+ 2 - 0
Userland/Libraries/LibGUI/Widget.h

@@ -108,6 +108,8 @@ public:
         set_max_height(height);
         set_max_height(height);
     }
     }
 
 
+    virtual bool is_visible_for_timer_purposes() const override;
+
     bool has_tooltip() const { return !m_tooltip.is_empty(); }
     bool has_tooltip() const { return !m_tooltip.is_empty(); }
     String tooltip() const { return m_tooltip; }
     String tooltip() const { return m_tooltip; }
     void set_tooltip(String);
     void set_tooltip(String);