ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #01701
[Merge] lp:~bratsche/appmenu-gtk/duplicate-separators into lp:appmenu-gtk
Cody Russell has proposed merging lp:~bratsche/appmenu-gtk/duplicate-separators into lp:appmenu-gtk.
Requested reviews:
Canonical Desktop Experience Team (canonical-dx-team)
Related bugs:
#594867 Duplicate separator items in app menus
https://bugs.launchpad.net/bugs/594867
--
https://code.launchpad.net/~bratsche/appmenu-gtk/duplicate-separators/+merge/28217
Your team ayatana-commits is subscribed to branch lp:appmenu-gtk.
=== modified file 'src/bridge.c'
--- src/bridge.c 2010-06-22 16:06:51 +0000
+++ src/bridge.c 2010-06-22 17:16:26 +0000
@@ -485,22 +485,40 @@
if (GTK_IS_CONTAINER (widget))
{
gboolean increment = GTK_IS_MENU_BAR (widget) || GTK_IS_MENU_ITEM (widget);
+ gboolean skip = FALSE;
if (increment)
recurse->count++;
if (recurse->count > -1 && increment)
{
- recurse->stack[recurse->count] = construct_dbusmenu_for_widget (widget);
-
- if (recurse->count > 0)
- {
- if (recurse->count == 1)
- dbusmenu_menuitem_child_append (recurse->stack[recurse->count - 1],
- recurse->stack[recurse->count]);
- else
- dbusmenu_menuitem_child_prepend (recurse->stack[recurse->count - 1],
- recurse->stack[recurse->count]);
+ if (GTK_IS_SEPARATOR_MENU_ITEM (widget))
+ {
+ if (recurse->stack[recurse->count] != NULL)
+ {
+ const gchar *type = dbusmenu_menuitem_property_get (recurse->stack[recurse->count],
+ DBUSMENU_MENUITEM_PROP_TYPE);
+
+ if (g_strcmp0 (type, "separator") == 0)
+ {
+ skip = TRUE;
+ }
+ }
+ }
+
+ if (!skip)
+ {
+ recurse->stack[recurse->count] = construct_dbusmenu_for_widget (widget);
+
+ if (recurse->count > 0)
+ {
+ if (recurse->count == 1)
+ dbusmenu_menuitem_child_append (recurse->stack[recurse->count - 1],
+ recurse->stack[recurse->count]);
+ else
+ dbusmenu_menuitem_child_prepend (recurse->stack[recurse->count - 1],
+ recurse->stack[recurse->count]);
+ }
}
}
Follow ups