summaryrefslogtreecommitdiffstats
path: root/src/libs/gui/PatchCanvas.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-26 22:18:33 +0000
committerDavid Robillard <d@drobilla.net>2007-07-26 22:18:33 +0000
commit23d74f838521320dc1682426341d1874061337a6 (patch)
tree25d26afb8f826f03d1321f425f6cc620f4bc7988 /src/libs/gui/PatchCanvas.cpp
parent3f445b19aaf42ae9442a9a7e40f95b4502f06047 (diff)
downloadingen-23d74f838521320dc1682426341d1874061337a6.tar.gz
ingen-23d74f838521320dc1682426341d1874061337a6.tar.bz2
ingen-23d74f838521320dc1682426341d1874061337a6.zip
Make canvas grab events.
Remove silly ctrl+click zoom event grabs. Add concept of "edit mode", old behaviour = edit mode, edit mode off = no connections or module moving. git-svn-id: http://svn.drobilla.net/lad/ingen@641 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui/PatchCanvas.cpp')
-rw-r--r--src/libs/gui/PatchCanvas.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/libs/gui/PatchCanvas.cpp b/src/libs/gui/PatchCanvas.cpp
index e209a43f..cbe931ab 100644
--- a/src/libs/gui/PatchCanvas.cpp
+++ b/src/libs/gui/PatchCanvas.cpp
@@ -393,6 +393,8 @@ PatchCanvas::canvas_event(GdkEvent* event)
{
assert(event);
+ static bool control_modded = false;
+
switch (event->type) {
case GDK_BUTTON_PRESS:
@@ -403,11 +405,25 @@ PatchCanvas::canvas_event(GdkEvent* event)
}
break;
- /*case GDK_KEY_PRESS:
- if (event->key.keyval == GDK_Delete)
- destroy_selected();
+ case GDK_KEY_PRESS:
+ if (event->key.keyval == GDK_Delete) {
+ destroy_selection();
+ } else if (event->key.keyval == GDK_Control_L || event->key.keyval == GDK_Control_R) {
+ if (_patch->get_editable() == true) {
+ control_modded = true;
+ _patch->set_editable(false);
+ }
+ }
+ break;
+
+ case GDK_KEY_RELEASE:
+ if (event->key.keyval == GDK_Control_L || event->key.keyval == GDK_Control_R) {
+ if (_patch->get_editable() == false &&control_modded) {
+ control_modded = false;
+ _patch->set_editable(true);
+ }
+ }
break;
- */
default:
break;