From 9c5e0408b2ab27edffd4a707ed09f5ad5895a9cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
Date: Sat, 3 Feb 2024 11:11:59 +0100
Subject: [PATCH] prefs-dialog: Use a placeholder for the socket in the glade
 file

In preparation for using WleGtkSocket on Wayland.
---
 src/xfce4-screensaver-preferences.c  | 20 +++++++++++++++-----
 src/xfce4-screensaver-preferences.ui |  9 +++------
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/src/xfce4-screensaver-preferences.c b/src/xfce4-screensaver-preferences.c
index 535c8de..c0637a1 100644
--- a/src/xfce4-screensaver-preferences.c
+++ b/src/xfce4-screensaver-preferences.c
@@ -1054,7 +1054,7 @@ reload_theme (GtkWidget *treeview) {
         return;
     }
 
-    preview  = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_preview_area"));
+    preview  = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (builder, "saver_themes_preview_area")));
     preview_set_theme (preview, theme, name);
 
     g_free (theme);
@@ -1570,10 +1570,10 @@ fullscreen_preview_cancelled_cb (GtkWidget *button,
     GtkWidget *preview_area;
     GtkWidget *dialog;
 
-    preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_preview_area"));
+    preview_area = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (builder, "saver_themes_preview_area")));
     gs_job_set_widget (job, preview_area);
 
-    fullscreen_preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_area"));
+    fullscreen_preview_area = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (builder, "fullscreen_preview_area")));
     gtk_widget_queue_draw (fullscreen_preview_area);
 
     fullscreen_preview_window = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_window"));
@@ -1602,7 +1602,7 @@ fullscreen_preview_start_cb (GtkWidget *widget,
     gtk_widget_show (fullscreen_preview_window);
     gtk_widget_grab_focus (fullscreen_preview_window);
 
-    fullscreen_preview_area = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_area"));
+    fullscreen_preview_area = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (builder, "fullscreen_preview_area")));
     gtk_widget_queue_draw (fullscreen_preview_area);
     gs_job_set_widget (job, fullscreen_preview_area);
 }
@@ -1710,7 +1710,7 @@ setup_treeview_idle (gpointer user_data) {
     GtkWidget *preview;
     GtkWidget *treeview;
 
-    preview  = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_preview_area"));
+    preview  = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (builder, "saver_themes_preview_area")));
     treeview = GTK_WIDGET (gtk_builder_get_object (builder, "saver_themes_treeview"));
 
     setup_treeview (treeview, preview);
@@ -1803,6 +1803,16 @@ configure_capplet (void) {
     fullscreen_preview_previous = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_previous_button"));
     fullscreen_preview_next     = GTK_WIDGET (gtk_builder_get_object (builder, "fullscreen_preview_next_button"));
 
+    gtk_container_add (GTK_CONTAINER (preview), gtk_socket_new ());
+    gtk_container_add (GTK_CONTAINER (fullscreen_preview_area), gtk_socket_new ());
+    preview = gtk_bin_get_child (GTK_BIN (preview));
+    gtk_widget_set_app_paintable (preview, TRUE);
+    gtk_widget_set_hexpand (preview, TRUE);
+    gtk_widget_set_vexpand (preview, TRUE);
+    fullscreen_preview_area = gtk_bin_get_child (GTK_BIN (fullscreen_preview_area));
+    gtk_widget_set_app_paintable (fullscreen_preview_area, TRUE);
+    gtk_widget_show (fullscreen_preview_area);
+
     gtk_widget_set_no_show_all (root_warning_infobar, TRUE);
 
     if (!is_program_in_path (GPM_COMMAND)) {
diff --git a/src/xfce4-screensaver-preferences.ui b/src/xfce4-screensaver-preferences.ui
index 3f2a1bd..e6e3f01 100644
--- a/src/xfce4-screensaver-preferences.ui
+++ b/src/xfce4-screensaver-preferences.ui
@@ -176,9 +176,8 @@ Simon Steinbeiß
           </packing>
         </child>
         <child>
-          <object class="GtkSocket" id="fullscreen_preview_area">
+          <object class="GtkOverlay" id="fullscreen_preview_area">
             <property name="visible">True</property>
-            <property name="app_paintable">True</property>
             <property name="can_focus">False</property>
           </object>
           <packing>
@@ -627,11 +626,9 @@ Simon Steinbeiß
                                 <property name="label_xalign">0</property>
                                 <property name="shadow_type">in</property>
                                 <child>
-                                  <object class="GtkSocket" id="saver_themes_preview_area">
-                                    <property name="app_paintable">True</property>
+                                  <object class="GtkOverlay" id="saver_themes_preview_area">
+                                    <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="hexpand">True</property>
-                                    <property name="vexpand">True</property>
                                   </object>
                                 </child>
                                 <child type="label_item">
-- 
GitLab