mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 19:04:58 +00:00
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:
@@ -42,12 +42,15 @@ void StackWidget::set_active_widget(Widget* widget)
|
|||||||
if (widget == m_active_widget)
|
if (widget == m_active_widget)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
bool had_focus = is_focused() || (m_active_widget && m_active_widget->is_focused());
|
||||||
|
|
||||||
if (m_active_widget)
|
if (m_active_widget)
|
||||||
m_active_widget->set_visible(false);
|
m_active_widget->set_visible(false);
|
||||||
m_active_widget = widget;
|
m_active_widget = widget;
|
||||||
if (m_active_widget) {
|
if (m_active_widget) {
|
||||||
m_active_widget->set_relative_rect(rect());
|
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);
|
m_active_widget->set_visible(true);
|
||||||
}
|
}
|
||||||
if (on_active_widget_change)
|
if (on_active_widget_change)
|
||||||
|
|||||||
Reference in New Issue
Block a user