sw/source/uibase/dbui/mailmergetoolbarcontrols.cxx |    2 -
 vcl/unx/gtk3/gtkinst.cxx                           |   23 ++++++++++++++++++---
 2 files changed, 21 insertions(+), 4 deletions(-)

New commits:
commit feae69bad70d637a92e6dbb7c18b756943858379
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Sep 10 12:28:58 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri Sep 10 18:57:17 2021 +0200

    gtk4: complete child_grab_focus for gtk4
    
    Change-Id: I35a19b4c95c1a57426a8fc51d4a15814ae443e6d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121897
    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 5a4270857919..79d3835f69db 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -5547,22 +5547,39 @@ public:
     virtual void child_grab_focus() override
     {
         gtk_widget_grab_focus(m_pWidget);
-#if !GTK_CHECK_VERSION(4, 0, 0)
+#if GTK_CHECK_VERSION(4, 0, 0)
+        bool bHasFocusChild = 
gtk_widget_get_focus_child(GTK_WIDGET(m_pContainer));
+#else
         bool bHasFocusChild = gtk_container_get_focus_child(m_pContainer);
+#endif
         if (!bHasFocusChild)
         {
+#if GTK_CHECK_VERSION(4, 0, 0)
+            if (GtkWidget* pChild = gtk_widget_get_first_child(m_pContainer))
+            {
+                gtk_widget_set_focus_child(m_pContainer, pChild);
+                bHasFocusChild = true;
+            }
+#else
             GList* pChildren = gtk_container_get_children(m_pContainer);
-            for (GList* pChild = g_list_first(pChildren); pChild; pChild = 
g_list_next(pChild))
+            if (GList* pChild = g_list_first(pChildren))
             {
                 gtk_container_set_focus_child(m_pContainer, 
static_cast<GtkWidget*>(pChild->data));
                 bHasFocusChild = true;
-                break;
             }
             g_list_free(pChildren);
+#endif
         }
+
         if (bHasFocusChild)
+        {
+#if GTK_CHECK_VERSION(4, 0, 0)
+            gtk_widget_child_focus(gtk_widget_get_focus_child(m_pWidget), 
GTK_DIR_TAB_FORWARD);
+#else
             
gtk_widget_child_focus(gtk_container_get_focus_child(GTK_CONTAINER(m_pWidget)), 
GTK_DIR_TAB_FORWARD);
 #endif
+        }
+
     }
 
     virtual void move(weld::Widget* pWidget, weld::Container* pNewParent) 
override
commit 94c9c991d1fd0991961ee7bb2fd88991fe55f2f1
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Sep 10 13:58:13 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri Sep 10 18:57:01 2021 +0200

    Resolves: tdf#143777 Exclude recipient is always greyed out
    
    Change-Id: I6ce94fad6ba518457665ae6d6b473cfe6f80849f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121905
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/source/uibase/dbui/mailmergetoolbarcontrols.cxx 
b/sw/source/uibase/dbui/mailmergetoolbarcontrols.cxx
index 3f3ace7d801a..a97974f57f34 100644
--- a/sw/source/uibase/dbui/mailmergetoolbarcontrols.cxx
+++ b/sw/source/uibase/dbui/mailmergetoolbarcontrols.cxx
@@ -386,7 +386,7 @@ void MMExcludeEntryController::statusChanged(const 
frame::FeatureStateEvent& rEv
     }
     else
     {
-        m_xExcludeCheckbox->set_sensitive(false);
+        m_xExcludeCheckbox->set_sensitive(true);
         
m_xExcludeCheckbox->set_active(xConfigItem->IsRecordExcluded(xConfigItem->GetResultSetPosition()));
     }
 }

Reply via email to