aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-gtk/menu.c
diff options
context:
space:
mode:
authorAurelien Gateau <aurelien.gateau@canonical.com>2010-03-03 17:27:05 +0100
committerAurelien Gateau <aurelien.gateau@canonical.com>2010-03-03 17:27:05 +0100
commitf3681a09522d6381eef14525eafdc4c467420879 (patch)
tree27f85e640dc8f8c1237bb8fa03d03cb1490ba2d0 /libdbusmenu-gtk/menu.c
parent64db63dfe4b4bde036c1e2a454288c280f582827 (diff)
downloadlibdbusmenu-f3681a09522d6381eef14525eafdc4c467420879.tar.gz
libdbusmenu-f3681a09522d6381eef14525eafdc4c467420879.tar.bz2
libdbusmenu-f3681a09522d6381eef14525eafdc4c467420879.zip
Send about_to_show when showing the first-level menu.
Diffstat (limited to 'libdbusmenu-gtk/menu.c')
-rw-r--r--libdbusmenu-gtk/menu.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libdbusmenu-gtk/menu.c b/libdbusmenu-gtk/menu.c
index d2a8620..cdc2287 100644
--- a/libdbusmenu-gtk/menu.c
+++ b/libdbusmenu-gtk/menu.c
@@ -96,6 +96,17 @@ dbusmenu_gtkmenu_class_init (DbusmenuGtkMenuClass *klass)
}
static void
+menu_focus_cb(DbusmenuGtkMenu * menu, gpointer userdata)
+{
+ g_debug(__FUNCTION__);
+ DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(menu);
+ if (priv->client != NULL) {
+ dbusmenu_client_send_about_to_show(DBUSMENU_CLIENT(priv->client), 0);
+ }
+ return;
+}
+
+static void
dbusmenu_gtkmenu_init (DbusmenuGtkMenu *self)
{
DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(self);
@@ -105,6 +116,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;
}