Browse Source

LibGUI: StackWidget should not steal focus when switching active child

Only focus the new active child if the old one had focus previously.
Andreas Kling 4 years ago
parent
commit
9b89303767
1 changed files with 4 additions and 1 deletions
  1. 4 1
      Libraries/LibGUI/StackWidget.cpp

+ 4 - 1
Libraries/LibGUI/StackWidget.cpp

@@ -42,12 +42,15 @@ void StackWidget::set_active_widget(Widget* widget)
     if (widget == m_active_widget)
         return;
 
+    bool had_focus = is_focused() || (m_active_widget && m_active_widget->is_focused());
+
     if (m_active_widget)
         m_active_widget->set_visible(false);
     m_active_widget = widget;
     if (m_active_widget) {
         m_active_widget->set_relative_rect(rect());
-        m_active_widget->set_focus(true);
+        if (had_focus)
+            m_active_widget->set_focus(true);
         m_active_widget->set_visible(true);
     }
     if (on_active_widget_change)