From bb999b7316a4b7977af4d6690b3b094e0dcc2ace Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 22 Jan 2010 14:18:46 -0600 Subject: Sending the current event time for a menu item getting activated. --- libdbusmenu-gtk/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index dd94663..7f03c33 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -109,7 +109,7 @@ static const gchar * data_menu = "dbusmenugtk-data-gtkmenu"; static gboolean menu_pressed_cb (GtkMenuItem * gmi, DbusmenuMenuitem * mi) { - dbusmenu_menuitem_activate(mi); + dbusmenu_menuitem_activate(mi, gtk_get_current_event_time()); return TRUE; } -- cgit v1.2.3 From 85e1c18ddc8803711f595572545125e0491beefa Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 22 Jan 2010 15:06:50 -0600 Subject: Change the 'return_if_fail' to an if as the previous function makes an annoying message. --- libdbusmenu-gtk/client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index dd94663..5146981 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -468,7 +468,10 @@ static void image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GValue * invalue, gpointer userdata) { /* We're only looking at these two properties here */ - g_return_if_fail(!g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON) || !g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_DATA)); + if (g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON) != 0 && + g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_DATA) != 0) { + return; + } const gchar * value = NULL; -- cgit v1.2.3 From 141060ba0a68af200973b91d7ca7e8e01fd7e79d Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Tue, 2 Feb 2010 16:57:41 -0800 Subject: icon -> icon-name sensitive -> enabled toggle-checked -> toggle-state toggle-state is now an int --- libdbusmenu-gtk/client.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 20e5523..a4de44e 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -136,7 +136,7 @@ process_sensitive (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * valu { gboolean val = TRUE; if (value != NULL) { - val = dbusmenu_menuitem_property_get_bool(mi, DBUSMENU_MENUITEM_PROP_SENSITIVE); + val = dbusmenu_menuitem_property_get_bool(mi, DBUSMENU_MENUITEM_PROP_ENABLED); } gtk_widget_set_sensitive(GTK_WIDGET(gmi), val); return; @@ -167,18 +167,18 @@ process_toggle_type (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * va /* Process the sensitive property */ static void -process_toggle_checked (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value) +process_toggle_state (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value) { if (!IS_GENERICMENUITEM(gmi)) return; GenericmenuitemState state = GENERICMENUITEM_STATE_UNCHECKED; - if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_STRING) { - const gchar * strval = g_value_get_string(value); + if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_INT) { + int val = g_value_get_int(value); - if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED)) { + if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED) { state = GENERICMENUITEM_STATE_CHECKED; - } else if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN)) { + } else if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN) { state = GENERICMENUITEM_STATE_INDETERMINATE; } } @@ -196,12 +196,12 @@ menu_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GValue * value, GtkMen gtk_menu_item_set_label(gmi, g_value_get_string(value)); } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_VISIBLE)) { process_visible(mi, gmi, value); - } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_SENSITIVE)) { + } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_ENABLED)) { process_sensitive(mi, gmi, value); } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE)) { process_toggle_type(mi, gmi, value); - } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED)) { - process_toggle_checked(mi, gmi, value); + } else if (!g_strcmp0(prop, DBUSMENU_MENUITEM_PROP_TOGGLE_STATE)) { + process_toggle_state(mi, gmi, value); } return; @@ -284,9 +284,9 @@ dbusmenu_gtkclient_newitem_base (DbusmenuGtkClient * client, DbusmenuMenuitem * /* Check our set of props to see if any are set already */ process_visible(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_VISIBLE)); - process_sensitive(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_SENSITIVE)); + process_sensitive(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_ENABLED)); process_toggle_type(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE)); - process_toggle_checked(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED)); + process_toggle_state(item, gmi, dbusmenu_menuitem_property_get_value(item, DBUSMENU_MENUITEM_PROP_TOGGLE_STATE)); /* Oh, we're a child, let's deal with that */ if (parent != NULL) { @@ -426,8 +426,8 @@ new_item_normal (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, Dbusmenu } image_property_handle(newitem, - DBUSMENU_MENUITEM_PROP_ICON, - dbusmenu_menuitem_property_get_value(newitem, DBUSMENU_MENUITEM_PROP_ICON), + DBUSMENU_MENUITEM_PROP_ICON_NAME, + dbusmenu_menuitem_property_get_value(newitem, DBUSMENU_MENUITEM_PROP_ICON_NAME), client); image_property_handle(newitem, DBUSMENU_MENUITEM_PROP_ICON_DATA, @@ -468,7 +468,7 @@ static void image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GValue * invalue, gpointer userdata) { /* We're only looking at these two properties here */ - if (g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON) != 0 && + if (g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_NAME) != 0 && g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_DATA) != 0) { return; } @@ -482,10 +482,10 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV if (value == NULL || value[0] == '\0') { /* This means that we're unsetting a value. */ /* Try to use the other one */ - if (g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON)) { + if (g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_NAME)) { property = DBUSMENU_MENUITEM_PROP_ICON_DATA; } else { - property = DBUSMENU_MENUITEM_PROP_ICON; + property = DBUSMENU_MENUITEM_PROP_ICON_NAME; } } @@ -507,7 +507,7 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV } /* Now figure out what to change */ - if (!g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON)) { + if (!g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_NAME)) { const gchar * iconname = dbusmenu_menuitem_property_get(item, property); if (iconname == NULL) { /* If there is no name, by golly we want no -- cgit v1.2.3 From 861a7f99bd21c5c51c52f3079c36dbab38d28a53 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 3 Feb 2010 18:11:22 -0800 Subject: Making a clicked in the gtk side of things. --- libdbusmenu-gtk/client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 20e5523..ae6297e 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -109,7 +109,10 @@ static const gchar * data_menu = "dbusmenugtk-data-gtkmenu"; static gboolean menu_pressed_cb (GtkMenuItem * gmi, DbusmenuMenuitem * mi) { - dbusmenu_menuitem_activate(mi, gtk_get_current_event_time()); + GValue value = {0}; + g_value_init(&value, G_TYPE_INT); + g_value_set_int(&value, 0); + dbusmenu_menuitem_handle_event(mi, "clicked", &value, gtk_get_current_event_time()); return TRUE; } -- cgit v1.2.3 From a5c79e6483cda97ac21ca1a609b19bf37bfe17f3 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 4 Feb 2010 10:43:53 -0800 Subject: Checking for NULL value in setting the toggle setting to make sure they are set before erroring. And erroring if we don't get ints --- libdbusmenu-gtk/client.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 555e8d2..0109a83 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -150,6 +150,7 @@ static void process_toggle_type (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value) { if (!IS_GENERICMENUITEM(gmi)) return; + if (value == NULL) return; GenericmenuitemCheckType type = GENERICMENUITEM_CHECK_TYPE_NONE; @@ -173,6 +174,7 @@ static void process_toggle_state (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value) { if (!IS_GENERICMENUITEM(gmi)) return; + if (value == NULL) return; GenericmenuitemState state = GENERICMENUITEM_STATE_UNCHECKED; @@ -184,6 +186,8 @@ process_toggle_state (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * v } else if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN) { state = GENERICMENUITEM_STATE_INDETERMINATE; } + } else { + g_warning("Toggle state changed without having an int"); } genericmenuitem_set_state(GENERICMENUITEM(gmi), state); -- cgit v1.2.3 From 82d0a5a336c8d3f5de5b8831ae31571fdeeb8160 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 4 Feb 2010 10:56:49 -0800 Subject: Switching to transforming values --- libdbusmenu-gtk/client.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'libdbusmenu-gtk/client.c') diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 0109a83..781326e 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -154,14 +154,19 @@ process_toggle_type (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * va GenericmenuitemCheckType type = GENERICMENUITEM_CHECK_TYPE_NONE; - if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_STRING) { - const gchar * strval = g_value_get_string(value); + GValue strvalue = {0}; + g_value_init(&strvalue, G_TYPE_STRING); + + if (value != NULL && g_value_transform(value, &strvalue)) { + const gchar * strval = g_value_get_string(&strvalue); if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_CHECK)) { type = GENERICMENUITEM_CHECK_TYPE_CHECKBOX; } else if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_RADIO)) { type = GENERICMENUITEM_CHECK_TYPE_RADIO; } + + g_value_unset(&strvalue); } genericmenuitem_set_check_type(GENERICMENUITEM(gmi), type); @@ -174,20 +179,20 @@ static void process_toggle_state (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value) { if (!IS_GENERICMENUITEM(gmi)) return; - if (value == NULL) return; GenericmenuitemState state = GENERICMENUITEM_STATE_UNCHECKED; - if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_INT) { - int val = g_value_get_int(value); + GValue intvalue = {0}; + g_value_init(&intvalue, G_TYPE_INT); + + if (value != NULL && g_value_transform(value, &intvalue)) { + int val = g_value_get_int(&intvalue); if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED) { state = GENERICMENUITEM_STATE_CHECKED; } else if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_UNKNOWN) { state = GENERICMENUITEM_STATE_INDETERMINATE; } - } else { - g_warning("Toggle state changed without having an int"); } genericmenuitem_set_state(GENERICMENUITEM(gmi), state); -- cgit v1.2.3