summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/keyboard.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-05-18 06:25:36 +1000
committernick_m <mainsbridge@gmail.com>2015-05-18 06:25:36 +1000
commitaac167a19f32accfbd867f3c72cec13f374f9199 (patch)
tree1c9a35ad0d3560134a013d08a105ba32bed2b321 /libs/gtkmm2ext/keyboard.cc
parent799e619690e17f96a65c8fc2933cff041991ec34 (diff)
"Lock" mode is now "Constrained", make snap absolute modifier configurable.
- user can abs/rel modifier key in prefs->user interaction suggested for linux - absolute->alt ignore snap->alt-shift - Constrained mode works the same as button 2 drag (initial move sets constraint axis).
Diffstat (limited to 'libs/gtkmm2ext/keyboard.cc')
-rw-r--r--libs/gtkmm2ext/keyboard.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/keyboard.cc b/libs/gtkmm2ext/keyboard.cc
index 420d42209b..06f158662b 100644
--- a/libs/gtkmm2ext/keyboard.cc
+++ b/libs/gtkmm2ext/keyboard.cc
@@ -59,6 +59,7 @@ guint Keyboard::delete_mod = GDK_SHIFT_MASK;
guint Keyboard::insert_note_but = 1;
guint Keyboard::insert_note_mod = GDK_CONTROL_MASK;
guint Keyboard::snap_mod = GDK_MOD3_MASK;
+guint Keyboard::snap_delta_mod = 0;
#ifdef GTKOSX
@@ -179,6 +180,8 @@ Keyboard::get_state (void)
node->add_property ("delete-modifier", buf);
snprintf (buf, sizeof (buf), "%d", snap_mod);
node->add_property ("snap-modifier", buf);
+ snprintf (buf, sizeof (buf), "%d", snap_delta_mod);
+ node->add_property ("snap-delta-modifier", buf);
snprintf (buf, sizeof (buf), "%d", insert_note_but);
node->add_property ("insert-note-button", buf);
snprintf (buf, sizeof (buf), "%d", insert_note_mod);
@@ -212,6 +215,10 @@ Keyboard::set_state (const XMLNode& node, int /*version*/)
sscanf (prop->value().c_str(), "%d", &snap_mod);
}
+ if ((prop = node.property ("snap-delta-modifier")) != 0) {
+ sscanf (prop->value().c_str(), "%d", &snap_delta_mod);
+ }
+
if ((prop = node.property ("insert-note-button")) != 0) {
sscanf (prop->value().c_str(), "%d", &insert_note_but);
}
@@ -466,6 +473,14 @@ Keyboard::set_snap_modifier (guint mod)
RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | snap_mod);
}
+void
+Keyboard::set_snap_delta_modifier (guint mod)
+{cerr << "setting snap delta mod" << endl;
+ RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask & ~snap_delta_mod);
+ snap_delta_mod = mod;
+ RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | snap_delta_mod);
+}
+
bool
Keyboard::is_edit_event (GdkEventButton *ev)
{