aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorChris Coulson <chrisccoulson@ubuntu.com>2010-12-13 16:51:45 +0000
committerChris Coulson <chrisccoulson@ubuntu.com>2010-12-13 16:51:45 +0000
commit09cb60267e5a4773ec5965e7e1a2ff92a690d7f0 (patch)
tree30349d19cee686f4f04c42233b6ae45bd747d1a4 /libdbusmenu-glib/menuitem.c
parent84969770f06f78f92f8e587c779e148d1d240f99 (diff)
downloadlibdbusmenu-09cb60267e5a4773ec5965e7e1a2ff92a690d7f0.tar.gz
libdbusmenu-09cb60267e5a4773ec5965e7e1a2ff92a690d7f0.tar.bz2
libdbusmenu-09cb60267e5a4773ec5965e7e1a2ff92a690d7f0.zip
Add an about-to-show signal to the menu items and hook this up
to be emitted when someone calls dbusmenu_menuitem_send_about_to_show
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index ad6472b..747cc01 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -70,6 +70,7 @@ enum {
CHILD_MOVED,
REALIZED,
SHOW_TO_USER,
+ ABOUT_TO_SHOW,
LAST_SIGNAL
};
@@ -229,6 +230,21 @@ dbusmenu_menuitem_class_init (DbusmenuMenuitemClass *klass)
g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT, G_TYPE_NONE);
+ /**
+ DbusmenuMenuitem::about-to-show:
+ @arg0: The #DbusmenuMenuitem object.
+
+ Emitted when the submenu for this item
+ is about to be shown
+ */
+ signals[ABOUT_TO_SHOW] = g_signal_new(DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW,
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(DbusmenuMenuitemClass, about_to_show),
+ NULL, NULL,
+ _dbusmenu_menuitem_marshal_VOID__VOID,
+ G_TYPE_BOOLEAN, 0, G_TYPE_NONE);
+
g_object_class_install_property (object_class, PROP_ID,
g_param_spec_int(PROP_ID_S, "ID for the menu item",
"This is a unique indentifier for the menu item.",
@@ -398,7 +414,8 @@ send_about_to_show (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gp
if (dbusmenu_menuitem_get_children(mi) == NULL) {
g_warning("About to Show called on an item wihtout submenus. We're ignoring it.");
} else {
- g_signal_emit(G_OBJECT(mi), signals[ITEM_ACTIVATED], 0, 0 /* timestamp */, TRUE);
+ gboolean dummy;
+ g_signal_emit(G_OBJECT(mi), signals[ABOUT_TO_SHOW], 0, &dummy);
}
if (cb != NULL) {