summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-07 19:04:33 -0500
committerDavid Robillard <d@drobilla.net>2014-12-07 19:04:33 -0500
commitbbdad822cd7c1b8aec6d2785f7eb71d2ff988617 (patch)
tree4949474061f061d376f893df05d25d3678a04c44
parentec8c0e93bbb14d69333cbba4f4aef79e2802b460 (diff)
Fix and simplify step_mouse_mode.
-rw-r--r--gtk2_ardour/editing_syms.h7
-rw-r--r--gtk2_ardour/editor_mouse.cc47
2 files changed, 10 insertions, 44 deletions
diff --git a/gtk2_ardour/editing_syms.h b/gtk2_ardour/editing_syms.h
index 94d1b9c08f..12c922bc60 100644
--- a/gtk2_ardour/editing_syms.h
+++ b/gtk2_ardour/editing_syms.h
@@ -65,13 +65,14 @@ REGIONLISTSORTTYPE(BySourceFileName)
REGIONLISTSORTTYPE(ByStartInFile)
REGIONLISTSORTTYPE(ByTimestamp)
-MOUSEMODE(MouseGain)
+/* Changing this order will break step_mouse_mode */
MOUSEMODE(MouseObject)
MOUSEMODE(MouseRange)
-MOUSEMODE(MouseDraw)
+MOUSEMODE(MouseCut)
+MOUSEMODE(MouseGain)
MOUSEMODE(MouseTimeFX)
MOUSEMODE(MouseAudition)
-MOUSEMODE(MouseCut)
+MOUSEMODE(MouseDraw)
/* Changing this order will break the menu */
ZOOMFOCUS(ZoomFocusLeft)
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 8299151533..58d9b8a874 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -391,47 +391,12 @@ Editor::update_time_selection_display ()
void
Editor::step_mouse_mode (bool next)
{
- switch (current_mouse_mode()) {
- case MouseObject:
- if (next) {
- set_mouse_mode (MouseRange);
- } else {
- set_mouse_mode (MouseTimeFX);
- }
- break;
-
- case MouseRange:
- if (next) set_mouse_mode (MouseDraw);
- else set_mouse_mode (MouseCut);
- break;
-
- case MouseCut:
- if (next) set_mouse_mode (MouseRange);
- else set_mouse_mode (MouseDraw);
- break;
-
- case MouseDraw:
- if (next) set_mouse_mode (MouseCut);
- else set_mouse_mode (MouseRange);
- break;
-
- case MouseGain:
- if (next) set_mouse_mode (MouseTimeFX);
- else set_mouse_mode (MouseDraw);
- break;
-
- case MouseTimeFX:
- if (next) {
- set_mouse_mode (MouseAudition);
- } else {
- set_mouse_mode (MouseGain);
- }
- break;
-
- case MouseAudition:
- if (next) set_mouse_mode (MouseObject);
- else set_mouse_mode (MouseTimeFX);
- break;
+ const int n_mouse_modes = (int)MouseDraw + 1;
+ int current = (int)current_mouse_mode();
+ if (next) {
+ set_mouse_mode((MouseMode)((current + 1) % n_mouse_modes));
+ } else {
+ set_mouse_mode((MouseMode)((current + n_mouse_modes - 1) % n_mouse_modes));
}
}