Update classkeys to match new total LuaSignal count (windows only)
[ardour.git] / libs / gtkmm2ext / keyboard.cc
index 1b0aec6cd6318b79c71d302f9a89c67b6282db2b..97531fe8f1bfdc654180d6196369177eb5226629 100644 (file)
@@ -60,7 +60,7 @@ guint Keyboard::insert_note_mod = GDK_CONTROL_MASK;
 
 #ifdef __APPLE__
 
-uint Keyboard::PrimaryModifier = (GDK_MOD2_MASK|GDK_META_MASK);   // Command
+guint Keyboard::PrimaryModifier = GDK_MOD2_MASK;   // Command
 guint Keyboard::SecondaryModifier = GDK_CONTROL_MASK; // Control
 guint Keyboard::TertiaryModifier = GDK_SHIFT_MASK; // Shift
 guint Keyboard::Level4Modifier = GDK_MOD1_MASK; // Alt/Option
@@ -86,7 +86,7 @@ guint Keyboard::snap_delta_mod = Keyboard::Level4Modifier;
 guint Keyboard::PrimaryModifier = GDK_CONTROL_MASK; // Control
 guint Keyboard::SecondaryModifier = GDK_MOD1_MASK;  // Alt/Option
 guint Keyboard::TertiaryModifier = GDK_SHIFT_MASK;  // Shift
-guint Keyboard::Level4Modifier = GDK_MOD4_MASK;     // Mod4/Windows
+guint Keyboard::Level4Modifier = GDK_MOD4_MASK|GDK_SUPER_MASK; // Mod4/Windows
 guint Keyboard::CopyModifier = GDK_CONTROL_MASK;
 guint Keyboard::RangeSelectModifier = GDK_SHIFT_MASK;
 guint Keyboard::button2_modifiers = 0; /* not used */
@@ -168,26 +168,16 @@ XMLNode&
 Keyboard::get_state (void)
 {
        XMLNode* node = new XMLNode ("Keyboard");
-       char buf[32];
-
-       snprintf (buf, sizeof (buf), "%d", CopyModifier);
-       node->add_property ("copy-modifier", buf);
-       snprintf (buf, sizeof (buf), "%d", edit_but);
-       node->add_property ("edit-button", buf);
-       snprintf (buf, sizeof (buf), "%d", edit_mod);
-       node->add_property ("edit-modifier", buf);
-       snprintf (buf, sizeof (buf), "%d", delete_but);
-       node->add_property ("delete-button", buf);
-       snprintf (buf, sizeof (buf), "%d", delete_mod);
-       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);
-       node->add_property ("insert-note-modifier", buf);
+
+       node->set_property ("copy-modifier", CopyModifier);
+       node->set_property ("edit-button", edit_but);
+       node->set_property ("edit-modifier", edit_mod);
+       node->set_property ("delete-button", delete_but);
+       node->set_property ("delete-modifier", delete_mod);
+       node->set_property ("snap-modifier", snap_mod);
+       node->set_property ("snap-delta-modifier", snap_delta_mod);
+       node->set_property ("insert-note-button", insert_note_but);
+       node->set_property ("insert-note-modifier", insert_note_mod);
 
        return *node;
 }
@@ -195,43 +185,15 @@ Keyboard::get_state (void)
 int
 Keyboard::set_state (const XMLNode& node, int /*version*/)
 {
-       XMLProperty const * prop;
-
-       if ((prop = node.property ("copy-modifier")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &CopyModifier);
-       }
-
-       if ((prop = node.property ("edit-button")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &edit_but);
-       }
-
-       if ((prop = node.property ("edit-modifier")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &edit_mod);
-       }
-
-       if ((prop = node.property ("delete-button")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &delete_but);
-       }
-
-       if ((prop = node.property ("delete-modifier")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &delete_mod);
-       }
-
-       if ((prop = node.property ("snap-modifier")) != 0) {
-               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);
-       }
-
-       if ((prop = node.property ("insert-note-modifier")) != 0) {
-               sscanf (prop->value().c_str(), "%d", &insert_note_mod);
-       }
+       node.get_property ("copy-modifier", CopyModifier);
+       node.get_property ("edit-button", edit_but);
+       node.get_property ("edit-modifier", edit_mod);
+       node.get_property ("delete-button", delete_but);
+       node.get_property ("delete-modifier", delete_mod);
+       node.get_property ("snap-modifier", snap_mod);
+       node.get_property ("snap-delta-modifier", snap_delta_mod);
+       node.get_property ("insert-note-button", insert_note_but);
+       node.get_property ("insert-note-modifier", insert_note_mod);
 
        return 0;
 }
@@ -690,7 +652,7 @@ Keyboard::store_keybindings (string const & path)
 
        for (list<Bindings*>::const_iterator b = Bindings::bindings.begin(); b != Bindings::bindings.end(); ++b) {
                bnode = new XMLNode (X_("Bindings"));
-               bnode->add_property (X_("name"), (*b)->name());
+               bnode->set_property (X_("name"), (*b)->name());
                (*b)->save (*bnode);
                node->add_child_nocopy (*bnode);
        }
@@ -722,6 +684,7 @@ Keyboard::reset_bindings ()
 
        {
                PBD::Unwinder<bool> uw (can_save_keybindings, false);
+               Bindings::reset_bindings ();
                setup_keybindings ();
                Bindings::associate_all ();
        }