From 717ad805ac049004393b2ba95e74e289f4eff7f9 Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Tue, 26 Apr 2011 09:30:16 +0300 Subject: [PATCH] gui: another fix for the port menu creation callback The port menu creation callback was called only once. The menu was then reused. Maybe this has to be fixed in flowcanvas by making on_menu_hide() virtual. --- gui/canvas.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gui/canvas.cpp b/gui/canvas.cpp index 837973bf..2b5d75e5 100644 --- a/gui/canvas.cpp +++ b/gui/canvas.cpp @@ -160,9 +160,13 @@ public: virtual void create_menu() { - FlowCanvas::Port::create_menu(); void (* fill_port_menu)(GtkMenu * menu, void * port_context); + /* Cannot call FlowCanvas::Port::create_menu() because on_menu_hide() is not virtual */ + _menu = new Gtk::Menu(); + _menu->items().push_back(Gtk::Menu_Helpers::MenuElem("Disconnect All", sigc::mem_fun(this, &Port::disconnect_all))); + _menu->signal_selection_done().connect(sigc::mem_fun(this, &port_cls::on_menu_hide)); + fill_port_menu = boost::dynamic_pointer_cast(module().lock()->canvas().lock())->m_fill_port_menu; if (fill_port_menu != NULL) {