vcl/unx/gtk3/gtkinst.cxx |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

New commits:
commit b1b6af02465b1a20ec4f28811bc5cc6bde8417be
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Jul 9 12:18:32 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri Jul 9 15:53:54 2021 +0200

    gtk4: adjust restoring focus to GtkEntry part of GtkComboBox on menu popdown
    
    the order of changed and popdown is different that in the gtk3 variant
    so protect against something (font size picker) changing the focus already
    when the ComboBox reported a change before the popdown happened
    
    Change-Id: Ie93e92685c9155b2520841ca6a436e499666adf0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118679
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 741d7c29470a..cd3fd1b5bc84 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -17587,11 +17587,15 @@ private:
         {
             m_bPopupActive = bIsShown;
             ComboBox::signal_popup_toggled();
-            if (!m_bPopupActive && m_pEntry)
+            // restore focus to the GtkEntry when the popup is gone, which
+            // is what the vcl case does, to ease the transition a little,
+            // but don't do it if the focus was moved out of togglebutton
+            // by something else already (e.g. font combobox in toolbar
+            // on a "direct pick" from the menu which moves focus into
+            // the main document
+            if (!m_bPopupActive && m_pEntry && has_child_focus())
             {
                 disable_notify_events();
-                //restore focus to the GtkEntry when the popup is gone, which
-                //is what the vcl case does, to ease the transition a little
                 gtk_widget_grab_focus(m_pEntry);
                 enable_notify_events();
             }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to