vcl/unx/gtk3/gtkinst.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
New commits: commit f497a4e9da5d2375e428b03c423cc2d2e9995c4a Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jul 16 15:49:33 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Jul 18 16:47:50 2021 +0200 Related: tdf#143357 restore focus to MenuButton when popover pops down which already happens for ComboBoxes but not always for MenuButtons with popovers with widgets in them Change-Id: If2ab1934f582b01327f910a578b80e9462d3daa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119078 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index f82ab5d105cc..f79e3c35fbf0 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -9681,6 +9681,11 @@ private: bool bNewChecked = gtk_widget_get_state_flags(GTK_WIDGET(pToggleButton)) & GTK_STATE_FLAG_CHECKED; if (bOldChecked == bNewChecked) return; + if (bOldChecked && gtk_widget_get_focus_on_click(GTK_WIDGET(pToggleButton))) + { + // grab focus back to the toggle button if the menu was popped down + gtk_widget_grab_focus(GTK_WIDGET(pToggleButton)); + } SolarMutexGuard aGuard; pThis->signal_toggled(); } @@ -9828,7 +9833,17 @@ public: return *m_xFont; return GtkInstanceWidget::get_font(); } - +#else + virtual void set_active(bool bActive) override + { + bool bWasActive = get_active(); + GtkInstanceToggleButton::set_active(bActive); + if (bWasActive && !bActive && gtk_widget_get_focus_on_click(GTK_WIDGET(m_pMenuButton))) + { + // grab focus back to the toggle button if the menu was popped down + gtk_widget_grab_focus(GTK_WIDGET(m_pMenuButton)); + } + } #endif virtual void insert_item(int pos, const OUString& rId, const OUString& rStr, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits