summaryrefslogtreecommitdiff
path: root/gtk2_ardour/keyboard.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/keyboard.cc')
-rw-r--r--gtk2_ardour/keyboard.cc24
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;
}
}
-
-