This is an automated email from the git hooks/post-receive script. b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-pulseaudio-plugin.
commit 49f0d46e8852ae64823835230cc95ca7fcd40b50 Author: Sean Davis <[email protected]> Date: Mon Sep 11 21:35:30 2017 -0400 Simplify ScaleMenuItem and memory management --- panel-plugin/scalemenuitem.c | 65 ++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/panel-plugin/scalemenuitem.c b/panel-plugin/scalemenuitem.c index 497fca0..a572ecb 100644 --- a/panel-plugin/scalemenuitem.c +++ b/panel-plugin/scalemenuitem.c @@ -46,20 +46,24 @@ static gboolean scale_menu_item_motion_notify_event (GtkWidget *men GdkEventMotion *event); static void scale_menu_item_parent_set (GtkWidget *item, GtkWidget *previous_parent); -static void update_packing (ScaleMenuItem * self); struct _ScaleMenuItemPrivate { GtkWidget *scale; - GtkWidget *left_image; + GtkWidget *image; + gchar *icon_name; + gboolean grabbed; - gchar *base_icon_name; }; +static void scale_menu_item_finalize (GObject *object); + + + enum { SLIDER_GRABBED, SLIDER_RELEASED, @@ -94,22 +98,22 @@ scale_menu_item_scale_value_changed (GtkRange *range, /* Update the menuitem icon */ if (value >= 70.0) { - icon_name = g_strconcat(priv->base_icon_name, "-high-symbolic", NULL); + icon_name = g_strconcat(priv->icon_name, "-high-symbolic", NULL); } else if (value >= 30.0) { - icon_name = g_strconcat(priv->base_icon_name, "-medium-symbolic", NULL); + icon_name = g_strconcat(priv->icon_name, "-medium-symbolic", NULL); } else if (value > 0.0) { - icon_name = g_strconcat(priv->base_icon_name, "-low-symbolic", NULL); + icon_name = g_strconcat(priv->icon_name, "-low-symbolic", NULL); } else { - icon_name = g_strconcat(priv->base_icon_name, "-muted-symbolic", NULL); + icon_name = g_strconcat(priv->icon_name, "-muted-symbolic", NULL); } - gtk_image_set_from_icon_name (GTK_IMAGE (priv->left_image), icon_name, GTK_ICON_SIZE_MENU); + gtk_image_set_from_icon_name (GTK_IMAGE (priv->image), icon_name, GTK_ICON_SIZE_MENU); g_free (icon_name); } @@ -124,6 +128,7 @@ scale_menu_item_class_init (ScaleMenuItemClass *item_class) widget_class->motion_notify_event = scale_menu_item_motion_notify_event; widget_class->parent_set = scale_menu_item_parent_set; + gobject_class->finalize = scale_menu_item_finalize; /** * ScaleMenuItem::slider-grabbed: @@ -175,22 +180,30 @@ scale_menu_item_class_init (ScaleMenuItemClass *item_class) } static void -update_packing (ScaleMenuItem *self) +scale_menu_item_init (ScaleMenuItem *self) { ScaleMenuItemPrivate *priv; - g_return_if_fail (IS_SCALE_MENU_ITEM (self)); - priv = GET_PRIVATE (self); - TRACE("entering"); - - gtk_container_add (GTK_CONTAINER (self), priv->scale); + priv->scale = NULL; + priv->image = NULL; + priv->icon_name = NULL; } static void -scale_menu_item_init (ScaleMenuItem *self) +scale_menu_item_finalize (GObject *object) { + ScaleMenuItem *self; + ScaleMenuItemPrivate *priv; + + self = SCALE_MENU_ITEM (object); + priv = GET_PRIVATE (self); + + g_free (priv->icon_name); + priv->icon_name = NULL; + + (*G_OBJECT_CLASS (scale_menu_item_parent_class)->finalize) (object); } static gboolean @@ -328,26 +341,26 @@ scale_menu_item_new_with_range (gdouble min, priv = GET_PRIVATE (scale_item); - priv->scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step); - - priv->left_image = gtk_image_new (); - + /* Configure the menu item image */ + priv->image = gtk_image_new (); G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (scale_item), priv->left_image); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (scale_item), priv->image); G_GNUC_END_IGNORE_DEPRECATIONS - g_object_ref (priv->left_image); - - g_signal_connect (priv->scale, "value-changed", G_CALLBACK (scale_menu_item_scale_value_changed), scale_item); - g_object_ref (priv->scale); + /* Configure the menu item scale */ + priv->scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step); gtk_widget_set_size_request (priv->scale, 100, -1); gtk_range_set_inverted (GTK_RANGE(priv->scale), FALSE); gtk_scale_set_draw_value (GTK_SCALE(priv->scale), FALSE); + if (max > 100.0) gtk_scale_add_mark (GTK_SCALE (priv->scale), 100.0, GTK_POS_BOTTOM, NULL); - update_packing (scale_item); + /* Pack the scale widget */ + gtk_container_add (GTK_CONTAINER (scale_item), priv->scale); + /* Connect events */ + g_signal_connect (priv->scale, "value-changed", G_CALLBACK (scale_menu_item_scale_value_changed), scale_item); gtk_widget_add_events (GTK_WIDGET(scale_item), GDK_SCROLL_MASK|GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK); return GTK_WIDGET(scale_item); @@ -383,5 +396,5 @@ scale_menu_item_set_base_icon_name (ScaleMenuItem *item, priv = GET_PRIVATE (item); - priv->base_icon_name = g_strdup (base_icon_name); + priv->icon_name = g_strdup (base_icon_name); } -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
