From bbdad822cd7c1b8aec6d2785f7eb71d2ff988617 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 7 Dec 2014 19:04:33 -0500 Subject: Fix and simplify step_mouse_mode. --- gtk2_ardour/editing_syms.h | 7 ++++--- gtk2_ardour/editor_mouse.cc | 47 ++++++--------------------------------------- 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)); } } -- cgit v1.2.3