enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / libs / gtkmm2ext / keyboard.cc
index 7975fdebd7f225708cff35e85fd54e4396c21940..569db5e1a8bd066774c1ea913498c8a04c00595b 100644 (file)
@@ -43,7 +43,7 @@
 #include "gtkmm2ext/keyboard.h"
 #include "gtkmm2ext/debug.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace PBD;
 using namespace Gtk;
@@ -72,6 +72,11 @@ const char* Keyboard::secondary_modifier_name() { return _("Control"); }
 const char* Keyboard::tertiary_modifier_name() { return S_("Key|Shift"); }
 const char* Keyboard::level4_modifier_name() { return _("Option"); }
 
+const char* Keyboard::primary_modifier_short_name() { return _("Cmd"); }
+const char* Keyboard::secondary_modifier_short_name() { return _("Ctrl"); }
+const char* Keyboard::tertiary_modifier_short_name() { return S_("Key|Shift"); }
+const char* Keyboard::level4_modifier_short_name() { return _("Opt"); }
+
 guint Keyboard::snap_mod = Keyboard::Level4Modifier|Keyboard::TertiaryModifier; // XXX this is probably completely wrong
 guint Keyboard::snap_delta_mod = Keyboard::Level4Modifier;
 
@@ -90,6 +95,11 @@ const char* Keyboard::secondary_modifier_name() { return _("Alt"); }
 const char* Keyboard::tertiary_modifier_name() { return S_("Key|Shift"); }
 const char* Keyboard::level4_modifier_name() { return _("Windows"); }
 
+const char* Keyboard::primary_modifier_short_name() { return _("Ctrl"); }
+const char* Keyboard::secondary_modifier_short_name() { return _("Alt"); }
+const char* Keyboard::tertiary_modifier_short_name() { return S_("Key|Shift"); }
+const char* Keyboard::level4_modifier_short_name() { return _("Win"); }
+
 guint Keyboard::snap_mod = Keyboard::SecondaryModifier;
 guint Keyboard::snap_delta_mod = Keyboard::SecondaryModifier|Keyboard::Level4Modifier;
 
@@ -215,7 +225,7 @@ Keyboard::get_state (void)
 int
 Keyboard::set_state (const XMLNode& node, int /*version*/)
 {
-       const XMLProperty* prop;
+       XMLProperty const * prop;
 
        if ((prop = node.property ("copy-modifier")) != 0) {
                sscanf (prop->value().c_str(), "%d", &CopyModifier);
@@ -477,6 +487,7 @@ Keyboard::leave_window (GdkEventCrossing *ev, Gtk::Window* /*win*/)
                        current_window = 0;
                }
        } else {
+               DEBUG_TRACE (DEBUG::Keyboard, "LEAVE window without event\n");
                current_window = 0;
        }
 
@@ -498,7 +509,9 @@ Keyboard::focus_out_window (GdkEventFocus * ev, Gtk::Window* win)
                state.clear ();
                current_window = 0;
        }  else {
-               current_window = 0;
+               if (win == current_window) {
+                       current_window = 0;
+               }
        }
 
        DEBUG_TRACE (DEBUG::Keyboard, string_compose ("Foucusing out window, title = %1\n", win->get_title()));
@@ -702,8 +715,9 @@ Keyboard::read_keybindings (string const & path)
        XMLNodeList const& children = tree.root()->children();
 
        for (XMLNodeList::const_iterator i = children.begin(); i != children.end(); ++i) {
-               if ((*i)->name() == X_("Bindings")) {
-                       XMLProperty const* name = (*i)->property (X_("name"));
+               XMLNode const * child = *i;
+               if (child->name() == X_("Bindings")) {
+                       XMLProperty const* name = child->property (X_("name"));
                        if (!name) {
                                warning << _("Keyboard binding found without a name") << endmsg;
                                continue;