vcl/unx/gtk3/gtkinst.cxx |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

New commits:
commit 82dab2e8c72c024794862b487d6988ad576e57d6
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Nov 15 12:06:58 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Nov 15 17:30:56 2021 +0100

    gtk4: complete do_collect_screenshot_data
    
    Change-Id: I6bb13ca5d174d8a5cccff24953bc2b3057769c78
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125243
    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 8960b70aa34c..3a7b2f86fd72 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -5979,7 +5979,6 @@ namespace
         return Point(x, y);
     }
 
-#if !GTK_CHECK_VERSION(4, 0, 0)
     void do_collect_screenshot_data(GtkWidget* pItem, gpointer data)
     {
         GtkWidget* pTopLevel = widget_get_toplevel(pItem);
@@ -6001,12 +6000,17 @@ namespace
             pCollection->emplace_back(::get_help_id(pItem), aCurrentRange);
         }
 
-#if !GTK_CHECK_VERSION(4, 0, 0)
+#if GTK_CHECK_VERSION(4, 0, 0)
+        for (GtkWidget* pChild = gtk_widget_get_first_child(pItem);
+             pChild; pChild = gtk_widget_get_next_sibling(pChild))
+        {
+            do_collect_screenshot_data(pChild, data);
+        }
+#else
         if (GTK_IS_CONTAINER(pItem))
             gtk_container_forall(GTK_CONTAINER(pItem), 
do_collect_screenshot_data, data);
 #endif
     }
-#endif
 
     tools::Rectangle get_monitor_workarea(GtkWidget* pWindow)
     {
@@ -6340,7 +6344,13 @@ public:
     {
         weld::ScreenShotCollection aRet;
 
-#if !GTK_CHECK_VERSION(4, 0, 0)
+#if GTK_CHECK_VERSION(4, 0, 0)
+        for (GtkWidget* pChild = 
gtk_widget_get_first_child(GTK_WIDGET(m_pWindow));
+             pChild; pChild = gtk_widget_get_next_sibling(pChild))
+        {
+            do_collect_screenshot_data(pChild, &aRet);
+        }
+#else
         gtk_container_foreach(GTK_CONTAINER(m_pWindow), 
do_collect_screenshot_data, &aRet);
 #endif
 

Reply via email to