diff options
Diffstat (limited to 'gtk2_ardour/keyboard.cc')
-rw-r--r-- | gtk2_ardour/keyboard.cc | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc index 2eac66af88..72b9ff1ba4 100644 --- a/gtk2_ardour/keyboard.cc +++ b/gtk2_ardour/keyboard.cc @@ -235,6 +235,28 @@ ArdourKeyboard::set_state (const XMLNode& node, int version) return Keyboard::set_state (node, version); } +bool +ArdourKeyboard::indicates_snap (guint state) +{ + bool contains_s = Keyboard::modifier_state_contains (state, Keyboard::snap_modifier()); + bool equals_s = Keyboard::modifier_state_equals (state, Keyboard::snap_modifier()); + bool contains_d = Keyboard::modifier_state_contains (state, Keyboard::snap_delta_modifier()); + bool equals_d = Keyboard::modifier_state_equals (state, Keyboard::snap_delta_modifier()); + + return (equals_s || (contains_s && ((contains_d && !equals_d) || !contains_d))); +} + +bool +ArdourKeyboard::indicates_snap_delta (guint state) +{ + bool contains_d = Keyboard::modifier_state_contains (state, Keyboard::snap_delta_modifier()); + bool equals_d = Keyboard::modifier_state_equals (state, Keyboard::snap_delta_modifier()); + bool contains_s = Keyboard::modifier_state_contains (state, Keyboard::snap_modifier()); + bool equals_s = Keyboard::modifier_state_equals (state, Keyboard::snap_modifier()); + + return (equals_d || (contains_d && ((contains_s && !equals_s) || !contains_s))); +} + void ArdourKeyboard::set_trim_contents_modifier (guint mod) { @@ -296,5 +318,3 @@ ArdourKeyboard::selection_type (guint state) return Selection::Set; } } - - |