[gnome-applets: 257/263] netspeed: use gobject finalize



commit e2132fafdb9bdf3c9a435321c84921bad7583120
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed Mar 25 13:04:51 2015 +0200

    netspeed: use gobject finalize

 netspeed/src/netspeed.c |   61 ++++++++++++++++++++--------------------------
 1 files changed, 27 insertions(+), 34 deletions(-)
---
diff --git a/netspeed/src/netspeed.c b/netspeed/src/netspeed.c
index f5a23a8..af4e764 100644
--- a/netspeed/src/netspeed.c
+++ b/netspeed/src/netspeed.c
@@ -1319,36 +1319,6 @@ applet_button_press(GtkWidget *widget, GdkEventButton *event, NetspeedApplet *ap
        return FALSE;
 }      
 
-/* Frees the applet and all the data it contains
- * Removes the timeout_cb
- */
-static void
-applet_destroy(PanelApplet *applet_widget, NetspeedApplet *applet)
-{
-       GtkIconTheme *icon_theme;
-       
-       g_assert(applet);
-       
-       icon_theme = gtk_icon_theme_get_default();
-       g_object_disconnect(G_OBJECT(icon_theme), "changed",
-                       G_CALLBACK(icon_theme_changed_cb), (gpointer)applet,
-                       NULL);
-       g_source_remove(applet->timeout_id);
-       applet->timeout_id = 0;
-       
-       if (applet->up_cmd)
-               g_free(applet->up_cmd);
-       if (applet->down_cmd)
-               g_free(applet->down_cmd);
-       
-       /* Should never be NULL */
-       free_device_info(&applet->devinfo);
-       g_free(applet);
-       return;
-}
-
-
-
 static void
 update_tooltip(NetspeedApplet* applet)
 {
@@ -1423,8 +1393,35 @@ static const GActionEntry menu_actions [] = {
 };
 
 static void
+netspeed_applet_finalize (GObject *object)
+{
+       NetspeedApplet *netspeed;
+
+       netspeed = NETSPEED_APPLET (object);
+
+       g_object_disconnect (gtk_icon_theme_get_default (), "any_signal::changed",
+                            G_CALLBACK (icon_theme_changed_cb), netspeed,
+                            NULL);
+
+       if (netspeed->timeout_id > 0) {
+               g_source_remove (netspeed->timeout_id);
+               netspeed->timeout_id = 0;
+       }
+
+       g_free (netspeed->up_cmd);
+       g_free (netspeed->down_cmd);
+
+       free_device_info (&netspeed->devinfo);
+}
+
+static void
 netspeed_applet_class_init (NetspeedAppletClass *netspeed_class)
 {
+       GObjectClass *object_class;
+
+       object_class = G_OBJECT_CLASS (netspeed_class);
+
+       object_class->finalize = netspeed_applet_finalize;
 }
 
 static void
@@ -1628,10 +1625,6 @@ netspeed_applet_factory (PanelApplet *applet,
                          G_CALLBACK (label_size_request_cb),
                          netspeed);
 
-       g_signal_connect (applet, "destroy",
-                         G_CALLBACK (applet_destroy),
-                         netspeed);
-
        g_signal_connect (applet, "button-press-event",
                          G_CALLBACK (applet_button_press),
                          netspeed);


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