diff options
author | Javier <dev.git@javispedro.com> | 2014-02-23 22:19:48 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2014-02-23 22:19:48 +0100 |
commit | 6d0f287cb098a202ad55e198c4737486b731254f (patch) | |
tree | 28b1abd66af3a4aeba66b2af44bdbd5be8f89ca1 | |
parent | 7fddcc13c71ee90384ef0e452e9cc1ebe65d190f (diff) | |
download | topmenu-qt-6d0f287cb098a202ad55e198c4737486b731254f.tar.gz topmenu-qt-6d0f287cb098a202ad55e198c4737486b731254f.zip |
prevent actions being added twice
-rw-r--r-- | module/menuproxy.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/module/menuproxy.cc b/module/menuproxy.cc index a59a576..81ba1d7 100644 --- a/module/menuproxy.cc +++ b/module/menuproxy.cc @@ -82,7 +82,12 @@ GtkMenuItem * MenuProxy::addAction(QAction* action, QAction* before, QMenu* pare g_parent = m_target; } - GtkMenuItem *item; + GtkMenuItem *item = getItemForAction(action); + if (item) { + // Action is already on this proxy. + return item; + } + if (action->isSeparator()) { item = GTK_MENU_ITEM(gtk_separator_menu_item_new()); } else if (action->isCheckable()) { @@ -163,6 +168,7 @@ void MenuProxy::removeAction(QAction *action) GtkMenuItem *item = m_items.value(action); if (!item) { + // Action is not on this proxy return; } |