LibGUI: StackWidget should not steal focus when switching active child

Only focus the new active child if the old one had focus previously.
This commit is contained in:
Andreas Kling 2020-09-18 18:02:06 +02:00
parent 65b246aaf4
commit 9b89303767
Notes: sideshowbarker 2024-07-19 02:21:14 +09:00

View File

@ -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)