diff options
author | David Robillard <d@drobilla.net> | 2007-07-26 22:18:33 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-07-26 22:18:33 +0000 |
commit | 23d74f838521320dc1682426341d1874061337a6 (patch) | |
tree | 25d26afb8f826f03d1321f425f6cc620f4bc7988 /src/libs/gui/PatchCanvas.cpp | |
parent | 3f445b19aaf42ae9442a9a7e40f95b4502f06047 (diff) | |
download | ingen-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.cpp | 24 |
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; |