diff options
author | Chris Coulson <chrisccoulson@ubuntu.com> | 2010-12-13 16:51:45 +0000 |
---|---|---|
committer | Chris Coulson <chrisccoulson@ubuntu.com> | 2010-12-13 16:51:45 +0000 |
commit | 09cb60267e5a4773ec5965e7e1a2ff92a690d7f0 (patch) | |
tree | 30349d19cee686f4f04c42233b6ae45bd747d1a4 /libdbusmenu-glib/menuitem.c | |
parent | 84969770f06f78f92f8e587c779e148d1d240f99 (diff) | |
download | libdbusmenu-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.c | 19 |
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) { |