[gtk+] GtkVolumeButton: Use G_PARAM_EXPLICIT_NOTIFY
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkVolumeButton: Use G_PARAM_EXPLICIT_NOTIFY
- Date: Mon, 9 Jun 2014 17:48:18 +0000 (UTC)
commit 46803aae111f63589c65ac867c1b6b82b4c4934c
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jun 9 11:51:12 2014 -0400
GtkVolumeButton: Use G_PARAM_EXPLICIT_NOTIFY
gtk/gtkvolumebutton.c | 46 +++++++++++++++++++++++++++++-----------------
1 files changed, 29 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkvolumebutton.c b/gtk/gtkvolumebutton.c
index ada64ae..d4849f5 100644
--- a/gtk/gtkvolumebutton.c
+++ b/gtk/gtkvolumebutton.c
@@ -82,6 +82,24 @@ static void cb_value_changed (GtkVolumeButton *button,
G_DEFINE_TYPE (GtkVolumeButton, gtk_volume_button, GTK_TYPE_SCALE_BUTTON)
+static gboolean
+get_symbolic (GtkScaleButton *button)
+{
+ gchar **icon_list;
+ gboolean ret;
+
+ g_object_get (button, "icons", &icon_list, NULL);
+ if (icon_list != NULL &&
+ icon_list[0] != NULL &&
+ g_str_equal (icon_list[0], icons_symbolic[0]))
+ ret = TRUE;
+ else
+ ret = FALSE;
+ g_strfreev (icon_list);
+
+ return ret;
+}
+
static void
gtk_volume_button_set_property (GObject *object,
guint prop_id,
@@ -93,10 +111,14 @@ gtk_volume_button_set_property (GObject *object,
switch (prop_id)
{
case PROP_SYMBOLIC:
- if (g_value_get_boolean (value))
- gtk_scale_button_set_icons (button, (const char **) icons_symbolic);
- else
- gtk_scale_button_set_icons (button, (const char **) icons);
+ if (get_symbolic (button) != g_value_get_boolean (value))
+ {
+ if (g_value_get_boolean (value))
+ gtk_scale_button_set_icons (button, (const char **) icons_symbolic);
+ else
+ gtk_scale_button_set_icons (button, (const char **) icons);
+ g_object_notify_by_pspec (object, pspec);
+ }
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -112,19 +134,9 @@ gtk_volume_button_get_property (GObject *object,
{
switch (prop_id)
{
- case PROP_SYMBOLIC: {
- char **icon_list;
-
- g_object_get (object, "icons", &icon_list, NULL);
- if (icon_list != NULL &&
- icon_list[0] != NULL &&
- g_str_equal (icon_list[0], icons_symbolic[0]))
- g_value_set_boolean (value, TRUE);
- else
- g_value_set_boolean (value, FALSE);
- g_strfreev (icon_list);
+ case PROP_SYMBOLIC:
+ g_value_set_boolean (value, get_symbolic (GTK_SCALE_BUTTON (object)));
break;
- }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -156,7 +168,7 @@ gtk_volume_button_class_init (GtkVolumeButtonClass *klass)
P_("Use symbolic icons"),
P_("Whether to use symbolic icons"),
TRUE,
- G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
+
G_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY));
/* Bind class to template
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]