[nautilus/wip/antoniof/gtk4-preparation-step-event-controllers: 3/28] floating-bar: Handle parent changes in GObject::notify




commit c02a8ecedf7f5887061ec642adbf50ad2644aef6
Author: António Fernandes <antoniof gnome org>
Date:   Thu Aug 5 23:16:54 2021 +0100

    floating-bar: Handle parent changes in GObject::notify
    
    GtkWidget::parent-set is gone in GTK4.

 src/nautilus-floating-bar.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/src/nautilus-floating-bar.c b/src/nautilus-floating-bar.c
index bd148eea3..10fa19773 100644
--- a/src/nautilus-floating-bar.c
+++ b/src/nautilus-floating-bar.c
@@ -301,13 +301,14 @@ on_event_controller_motion_motion (GtkEventControllerMotion *controller,
 }
 
 static void
-nautilus_floating_bar_parent_set (GtkWidget *widget,
-                                  GtkWidget *old_parent)
+on_parent_changed (GObject    *object,
+                   GParamSpec *pspec,
+                   gpointer    user_data)
 {
-    NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (widget);
+    NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (object);
     GtkWidget *parent;
 
-    parent = gtk_widget_get_parent (widget);
+    parent = gtk_widget_get_parent (GTK_WIDGET (object));
 
     g_clear_object (&self->motion_controller);
 
@@ -490,6 +491,11 @@ nautilus_floating_bar_init (NautilusFloatingBar *self)
 
     self->motion_controller = NULL;
     self->pointer_y_in_parent_coordinates = -1;
+
+    g_signal_connect (self,
+                      "notify::parent",
+                      G_CALLBACK (on_parent_changed),
+                      NULL);
 }
 
 static void
@@ -507,7 +513,6 @@ nautilus_floating_bar_class_init (NautilusFloatingBarClass *klass)
     wclass->get_preferred_width_for_height = nautilus_floating_bar_get_preferred_width_for_height;
     wclass->get_preferred_height = nautilus_floating_bar_get_preferred_height;
     wclass->get_preferred_height_for_width = nautilus_floating_bar_get_preferred_height_for_width;
-    wclass->parent_set = nautilus_floating_bar_parent_set;
 
     properties[PROP_PRIMARY_LABEL] =
         g_param_spec_string ("primary-label",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]