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())); } }