aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Jirman <megous@megous.com>2007-11-14 02:36:02 +0800
committerMilan Crha <mcrha@src.gnome.org>2007-11-14 02:36:02 +0800
commit11cf7790eb87cecced8090dfa65ea6df0bf78047 (patch)
tree726bca31da96bab9dd7f621614c80ed793a9fa06
parent303194b97add2cc54e5799cb6c5ad7456ca4bd2d (diff)
downloadgsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar.gz
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar.bz2
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar.lz
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar.xz
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.tar.zst
gsoc2013-evolution-11cf7790eb87cecced8090dfa65ea6df0bf78047.zip
** Fix for bug #494320
2007-11-13 Ondrej Jirman <megous@megous.com> ** Fix for bug #494320 * e-popup.c: (e_popup_create_menu): Add support for redefining existing menu items. svn path=/trunk/; revision=34530
-rw-r--r--e-util/ChangeLog7
-rw-r--r--e-util/e-popup.c6
2 files changed, 13 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index 367105882e..d44416e18e 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,10 @@
+2007-11-13 Ondrej Jirman <megous@megous.com>
+
+ ** Fix for bug #494320
+
+ * e-popup.c: (e_popup_create_menu): Add support for redefining
+ existing menu items.
+
2007-11-05 Milan Crha <mcrha@redhat.com>
** Fix for bug #492692
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) {