diff options
Diffstat (limited to 'e-util/e-popup.c')
-rw-r--r-- | e-util/e-popup.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/e-util/e-popup.c b/e-util/e-popup.c index ce723a2368..c607b9045c 100644 --- a/e-util/e-popup.c +++ b/e-util/e-popup.c @@ -507,9 +507,15 @@ e_popup_create_menu(EPopup *emp, EPopupTarget *target, guint32 mask) /* create tree structure */ for (i=0;i<items->len;i++) { struct _item_node *inode = items->pdata[i], *pnode; + struct _item_node *nextnode = (i + 1 < items->len) ? items->pdata[i+1] : NULL; struct _EPopupItem *item = inode->item; const char *tmp; + if (nextnode && !strcmp (nextnode->item->path, item->path)) { + d(printf ("skipping item %s\n", item->path)); + continue; + } + g_string_truncate(ppath, 0); tmp = strrchr(item->path, '/'); if (tmp) { |