aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen VanDine <ken.vandine@canonical.com>2010-12-09 17:57:06 -0500
committerKen VanDine <ken.vandine@canonical.com>2010-12-09 17:57:06 -0500
commitc8c96a2079bddcd9db51d3f8cd733a6198bb6c85 (patch)
tree99d9294215ccfc55f702058fe08cf49efc65a0a5
parent107da7d1c1b15189576df0d5ff0c37c9690e9676 (diff)
parent1574d58e111bd80cbeb770ab3f603dca88a90341 (diff)
downloadlibdbusmenu-c8c96a2079bddcd9db51d3f8cd733a6198bb6c85.tar.gz
libdbusmenu-c8c96a2079bddcd9db51d3f8cd733a6198bb6c85.tar.bz2
libdbusmenu-c8c96a2079bddcd9db51d3f8cd733a6198bb6c85.zip
releasing version 0.3.90-0ubuntu2
-rw-r--r--debian/changelog8
-rw-r--r--libdbusmenu-gtk/genericmenuitem.c24
2 files changed, 18 insertions, 14 deletions
diff --git a/debian/changelog b/debian/changelog
index efc5d8d..ee204ca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+libdbusmenu (0.3.90-0ubuntu2) natty; urgency=low
+
+ * libdbusmenu-gtk/genericmenuitem.c
+ - Switching away from using set_activate as that doesn't actually set
+ the value, it just signals
+
+ -- Ken VanDine <ken.vandine@canonical.com> Thu, 09 Dec 2010 17:46:41 -0500
+
libdbusmenu (0.3.90-0ubuntu1) natty; urgency=low
* debian/rules
diff --git a/libdbusmenu-gtk/genericmenuitem.c b/libdbusmenu-gtk/genericmenuitem.c
index d507487..d3023ad 100644
--- a/libdbusmenu-gtk/genericmenuitem.c
+++ b/libdbusmenu-gtk/genericmenuitem.c
@@ -65,6 +65,7 @@ static void (*parent_draw_indicator) (GtkCheckMenuItem *check_menu_item, cairo_t
static void draw_indicator (GtkCheckMenuItem *check_menu_item, GdkRectangle *area);
static void (*parent_draw_indicator) (GtkCheckMenuItem *check_menu_item, GdkRectangle *area) = NULL;
#endif
+static void (*parent_menuitem_activate) (GtkMenuItem * mi) = NULL;
/* Initializing all of the classes. Most notably we're
disabling the drawing of the check early. */
@@ -86,6 +87,7 @@ genericmenuitem_class_init (GenericmenuitemClass *klass)
GtkMenuItemClass * menuitem_class = GTK_MENU_ITEM_CLASS (klass);
menuitem_class->set_label = set_label;
menuitem_class->get_label = get_label;
+ parent_menuitem_activate = menuitem_class->activate;
menuitem_class->activate = activate;
return;
@@ -338,21 +340,19 @@ genericmenuitem_set_state (Genericmenuitem * item, GenericmenuitemState state)
item->priv->state = state;
GtkCheckMenuItem * check = GTK_CHECK_MENU_ITEM(item);
-
- gboolean old_active = gtk_check_menu_item_get_active (check);
- gboolean old_inconsist = gtk_check_menu_item_get_inconsistent (check);
+ gboolean goal_active = FALSE;
switch (item->priv->state) {
case GENERICMENUITEM_STATE_UNCHECKED:
- gtk_check_menu_item_set_active (check, FALSE);
+ goal_active = FALSE;
gtk_check_menu_item_set_inconsistent (check, FALSE);
break;
case GENERICMENUITEM_STATE_CHECKED:
- gtk_check_menu_item_set_active (check, TRUE);
+ goal_active = TRUE;
gtk_check_menu_item_set_inconsistent (check, FALSE);
break;
case GENERICMENUITEM_STATE_INDETERMINATE:
- gtk_check_menu_item_set_active (check, TRUE);
+ goal_active = TRUE;
gtk_check_menu_item_set_inconsistent (check, TRUE);
break;
default:
@@ -360,16 +360,12 @@ genericmenuitem_set_state (Genericmenuitem * item, GenericmenuitemState state)
return;
}
- if (old_active != gtk_check_menu_item_get_active (check)) {
- g_object_notify(G_OBJECT(item), "active");
- }
-
- if (old_inconsist != gtk_check_menu_item_get_inconsistent (check)) {
- g_object_notify(G_OBJECT(item), "inconsistent");
+ if (goal_active != gtk_check_menu_item_get_active(check)) {
+ if (parent_menuitem_activate != NULL) {
+ parent_menuitem_activate(GTK_MENU_ITEM(check));
+ }
}
- gtk_widget_queue_draw(GTK_WIDGET(item));
-
return;
}