aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-gtk/menu.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-04-15 01:23:10 -0500
committerTed Gould <ted@gould.cx>2010-04-15 01:23:10 -0500
commit490c7b4de7274d4c0c3529ff01bacb829d6aa4c8 (patch)
tree4b1fa3f794991102ea5a085df14b6a293b690a7b /libdbusmenu-gtk/menu.c
parentb76efc8297f488efce9e4fddf9e705c75a27065e (diff)
parent7bf97e72be70cf02997eca526aaac68df4494165 (diff)
downloadlibdbusmenu-490c7b4de7274d4c0c3529ff01bacb829d6aa4c8.tar.gz
libdbusmenu-490c7b4de7274d4c0c3529ff01bacb829d6aa4c8.tar.bz2
libdbusmenu-490c7b4de7274d4c0c3529ff01bacb829d6aa4c8.zip
* Upstream Merge
* Changing GTK layer to look at position in realized children to avoid realization races. (LP: #555816) * Don't allow setting children twice * Ref children of a menuitem * Return error when parent ID of getlayout can't be found * Adding in visible property to docs * Helpful comments in the code
Diffstat (limited to 'libdbusmenu-gtk/menu.c')
-rw-r--r--libdbusmenu-gtk/menu.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libdbusmenu-gtk/menu.c b/libdbusmenu-gtk/menu.c
index 103ecfe..4fa546b 100644
--- a/libdbusmenu-gtk/menu.c
+++ b/libdbusmenu-gtk/menu.c
@@ -237,7 +237,7 @@ root_child_added (DbusmenuMenuitem * root, DbusmenuMenuitem * child, guint posit
GtkMenuItem * mi = dbusmenu_gtkclient_menuitem_get(priv->client, child);
if (mi != NULL) {
GtkWidget * item = GTK_WIDGET(mi);
- gtk_menu_insert(GTK_MENU(menu), item, position);
+ gtk_menu_insert(GTK_MENU(menu), item, dbusmenu_menuitem_get_position_realized(child, root));
#ifdef MASSIVEDEBUGGING
menu_pos_t menu_pos;
menu_pos.mi = mi;
@@ -260,7 +260,7 @@ root_child_moved (DbusmenuMenuitem * root, DbusmenuMenuitem * child, guint newpo
g_debug("Root child moved");
#endif
DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(menu);
- gtk_menu_reorder_child(GTK_MENU(menu), GTK_WIDGET(dbusmenu_gtkclient_menuitem_get(priv->client, child)), newposition);
+ gtk_menu_reorder_child(GTK_MENU(menu), GTK_WIDGET(dbusmenu_gtkclient_menuitem_get(priv->client, child)), dbusmenu_menuitem_get_position_realized(child, root));
return;
}
@@ -300,7 +300,7 @@ child_realized (DbusmenuMenuitem * child, gpointer userdata)
if (child_widget != NULL) {
gtk_menu_append(menu, child_widget);
- gtk_menu_reorder_child(GTK_MENU(menu), child_widget, dbusmenu_menuitem_get_position(child, dbusmenu_client_get_root(DBUSMENU_CLIENT(priv->client))));
+ gtk_menu_reorder_child(GTK_MENU(menu), child_widget, dbusmenu_menuitem_get_position_realized(child, dbusmenu_client_get_root(DBUSMENU_CLIENT(priv->client))));
} else {
g_warning("Child is realized, but doesn't have a GTK Widget!");
}