diff options
author | Ted Gould <ted@gould.cx> | 2010-03-31 14:15:36 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-03-31 14:15:36 -0500 |
commit | abd4bb02f717e6d27b77c903877a98d1a5a534b7 (patch) | |
tree | 901f7518f5da2db2a90075706bf0c18b5320f0c5 /libdbusmenu-gtk/menu.c | |
parent | 85a76718ac641b83bb3a283d5819a3272fdd134c (diff) | |
parent | 1f308a47c578baec7ba7bfebb880e0ecf0a17688 (diff) | |
download | libdbusmenu-abd4bb02f717e6d27b77c903877a98d1a5a534b7.tar.gz libdbusmenu-abd4bb02f717e6d27b77c903877a98d1a5a534b7.tar.bz2 libdbusmenu-abd4bb02f717e6d27b77c903877a98d1a5a534b7.zip |
* Upstream merge
* Supporting AboutToShow in event callbacks to catch up
with QT implementation.
Diffstat (limited to 'libdbusmenu-gtk/menu.c')
-rw-r--r-- | libdbusmenu-gtk/menu.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libdbusmenu-gtk/menu.c b/libdbusmenu-gtk/menu.c index d2a8620..103ecfe 100644 --- a/libdbusmenu-gtk/menu.c +++ b/libdbusmenu-gtk/menu.c @@ -96,6 +96,18 @@ dbusmenu_gtkmenu_class_init (DbusmenuGtkMenuClass *klass) } static void +menu_focus_cb(DbusmenuGtkMenu * menu, gpointer userdata) +{ + DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(menu); + if (priv->client != NULL) { + /* TODO: We should stop the display of the menu + until the about to show call returns. */ + dbusmenu_client_send_about_to_show(DBUSMENU_CLIENT(priv->client), 0, NULL, NULL); + } + return; +} + +static void dbusmenu_gtkmenu_init (DbusmenuGtkMenu *self) { DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(self); @@ -105,6 +117,8 @@ dbusmenu_gtkmenu_init (DbusmenuGtkMenu *self) priv->dbus_object = NULL; priv->dbus_name = NULL; + g_signal_connect(G_OBJECT(self), "focus", G_CALLBACK(menu_focus_cb), self); + return; } |