aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui/MachinaCanvas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/MachinaCanvas.cpp')
-rw-r--r--src/gui/MachinaCanvas.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/gui/MachinaCanvas.cpp b/src/gui/MachinaCanvas.cpp
index 17cfb4c..a11e40a 100644
--- a/src/gui/MachinaCanvas.cpp
+++ b/src/gui/MachinaCanvas.cpp
@@ -42,19 +42,19 @@ MachinaCanvas::MachinaCanvas(MachinaGUI* app, int width, int height)
widget().grab_focus();
}
-void
+bool
MachinaCanvas::node_clicked(WeakPtr<NodeView> item, GdkEventButton* event)
{
SharedPtr<NodeView> node = PtrCast<NodeView>(item.lock());
if (!node)
- return;
+ return false;
if (event->state & GDK_CONTROL_MASK)
- return;
+ return false;
if (event->button == 2) { // Middle click: learn
_app->controller()->learn(_app->maid(), node->node()->id());
- return;
+ return false;
} else if (event->button == 3) { // Right click: connect/disconnect
SharedPtr<NodeView> last = _last_clicked.lock();
@@ -74,7 +74,11 @@ MachinaCanvas::node_clicked(WeakPtr<NodeView> item, GdkEventButton* event)
_last_clicked = node;
node->set_base_color(0xFF0000FF);
}
+
+ return true;
}
+
+ return false;
}
bool
@@ -106,7 +110,7 @@ MachinaCanvas::on_new_object(SharedPtr<Client::ClientObject> object)
//if ( ! node->enter_action() && ! node->exit_action() )
// view->set_base_color(0x101010FF);
- view->signal_clicked.connect(
+ view->signal_clicked().connect(
sigc::bind<0>(sigc::mem_fun(this, &MachinaCanvas::node_clicked),
WeakPtr<NodeView>(view)));