sidebarrow: Avoid object-valued properties
authorMatthias Clasen <mclasen@redhat.com>
Tue, 23 Jun 2015 18:42:57 +0000 (14:42 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 23 Jun 2015 20:35:17 +0000 (16:35 -0400)
They tend to leak...as these do.

gtk/gtkplacessidebar.c
gtk/gtksidebarrow.c
gtk/gtksidebarrowprivate.h

index f8f87d6b3e8c12357a7a90300980fdda283e2eb1..a09ae1beab7db180c781f73ca29c2ebb7eec21c6 100644 (file)
@@ -426,15 +426,15 @@ add_place (GtkPlacesSidebar            *sidebar,
                       NULL);
 
   g_free (tooltip_escaped);
-  g_object_get (row,
-                "eject-button", &eject_button,
-                "event-box", &event_box,
-                NULL);
-  g_signal_connect_swapped (eject_button, "clicked", G_CALLBACK (eject_or_unmount_bookmark), row);
-  /* Needs event box since GtkListBoxRow doesn't have a GdkWindow associated that can
-   * listen events */
-  g_signal_connect (event_box, "button-press-event", G_CALLBACK (on_button_press_event), row);
-  g_signal_connect (event_box, "button-release-event", G_CALLBACK (on_button_release_event), row);
+  eject_button = gtk_sidebar_row_get_eject_button (GTK_SIDEBAR_ROW (row));
+  event_box = gtk_sidebar_row_get_event_box (GTK_SIDEBAR_ROW (row));
+
+  g_signal_connect_swapped (eject_button, "clicked",
+                            G_CALLBACK (eject_or_unmount_bookmark), row);
+  g_signal_connect (event_box, "button-press-event",
+                    G_CALLBACK (on_button_press_event), row);
+  g_signal_connect (event_box, "button-release-event",
+                    G_CALLBACK (on_button_release_event), row);
 
   gtk_container_add (GTK_CONTAINER (sidebar->list_box), GTK_WIDGET (row));
   gtk_widget_show_all (row);
index e56180c538a028704cdfb45f04c267ee3409214f..a5ff9ccaa06ff3109d41ee1488ba68b0fd244c8e 100644 (file)
@@ -70,8 +70,6 @@ enum
   PROP_MOUNT,
   PROP_SENSITIVE,
   PROP_PLACEHOLDER,
-  PROP_EJECT_BUTTON,
-  PROP_EVENT_BOX,
   LAST_PROP
 };
 
@@ -171,18 +169,6 @@ gtk_sidebar_row_get_property (GObject    *object,
         break;
       }
 
-    case PROP_EJECT_BUTTON:
-      {
-        g_value_set_object (value, self->eject_button);
-        break;
-      }
-
-    case PROP_EVENT_BOX:
-      {
-        g_value_set_object (value, self->event_box);
-        break;
-      }
-
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
     }
@@ -576,26 +562,6 @@ gtk_sidebar_row_class_init (GtkSidebarRowClass *klass)
   g_object_class_install_property (object_class, PROP_PLACEHOLDER,
                                    gParamSpecs [PROP_PLACEHOLDER]);
 
-  gParamSpecs [PROP_EJECT_BUTTON] =
-   g_param_spec_object ("eject-button",
-                        "Eject Button",
-                        "Eject button",
-                        GTK_TYPE_WIDGET,
-                        (G_PARAM_READABLE |
-                         G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (object_class, PROP_EJECT_BUTTON,
-                                   gParamSpecs [PROP_EJECT_BUTTON]);
-
-  gParamSpecs [PROP_EVENT_BOX] =
-    g_param_spec_object ("event-box",
-                         "Event Box",
-                         "Event Box",
-                         GTK_TYPE_WIDGET,
-                         (G_PARAM_READABLE |
-                          G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (object_class, PROP_EVENT_BOX,
-                                   gParamSpecs [PROP_EVENT_BOX]);
-
   gtk_widget_class_set_template_from_resource (widget_class,
                                                "/org/gtk/libgtk/ui/gtksidebarrow.ui");
 
@@ -612,18 +578,30 @@ gtk_sidebar_row_class_init (GtkSidebarRowClass *klass)
 GtkSidebarRow*
 gtk_sidebar_row_clone (GtkSidebarRow *self)
 {
- return  g_object_new (GTK_TYPE_SIDEBAR_ROW,
-                       "sidebar", self->sidebar,
-                       "icon", self->icon,
-                       "label", self->label,
-                       "tooltip", self->tooltip,
-                       "ejectable", self->ejectable,
-                       "order-index", self->order_index,
-                       "section-type", self->section_type,
-                       "place-type", self->place_type,
-                       "uri", self->uri,
-                       "drive", self->drive,
-                       "volume", self->volume,
-                       "mount", self->mount,
-                       NULL);
+ return g_object_new (GTK_TYPE_SIDEBAR_ROW,
+                      "sidebar", self->sidebar,
+                      "icon", self->icon,
+                      "label", self->label,
+                      "tooltip", self->tooltip,
+                      "ejectable", self->ejectable,
+                      "order-index", self->order_index,
+                      "section-type", self->section_type,
+                      "place-type", self->place_type,
+                      "uri", self->uri,
+                      "drive", self->drive,
+                      "volume", self->volume,
+                      "mount", self->mount,
+                      NULL);
+}
+
+GtkWidget *
+gtk_sidebar_row_get_eject_button (GtkSidebarRow *self)
+{
+  return self->eject_button;
+}
+
+GtkWidget *
+gtk_sidebar_row_get_event_box (GtkSidebarRow *self)
+{
+  return self->event_box;
 }
index b513184e7a3347d6d851352cf4f6a8fa1df39b26..b624d368083396b4aa3e59cfddf3bdab6ae3013d 100644 (file)
@@ -48,6 +48,9 @@ void           gtk_sidebar_row_hide   (GtkSidebarRow *self,
                                        gboolean       inmediate);
 void           gtk_sidebar_row_reveal (GtkSidebarRow *self);
 
+GtkWidget     *gtk_sidebar_row_get_eject_button (GtkSidebarRow *self);
+GtkWidget     *gtk_sidebar_row_get_event_box    (GtkSidebarRow *self);
+
 G_END_DECLS
 
 #endif /* GTK_SIDEBAR_ROW_PRIVATE_H */