]> git.mxchange.org Git - flightgear.git/blobdiff - src/Input/input.cxx
make --enable-osgviewer the default
[flightgear.git] / src / Input / input.cxx
index a6906140540adcdb0e036da365a99867d3900d88..09ef2c21d0bbafc740253fa7ac12609f67b2cbc8 100644 (file)
@@ -251,6 +251,8 @@ FGInput::doKey (int k, int modifiers, int x, int y)
   if (!_key_code)
     return;
 
+  k = _key_code;
+  modifiers = _key_modifiers | (_key_pressed ? KEYMOD_NONE : KEYMOD_RELEASED);
   button &b = _key_bindings[k];
 
                                 // Key pressed.
@@ -971,6 +973,14 @@ FGInput::_read_bindings (const SGPropertyNode * node,
   if (node->getChild("mod-alt") != 0)
     _read_bindings(node->getChild("mod-alt"), binding_list,
                    modifiers|KEYMOD_ALT);
+
+  if (node->getChild("mod-meta") != 0)
+    _read_bindings(node->getChild("mod-meta"), binding_list,
+                   modifiers|KEYMOD_META);
+
+  if (node->getChild("mod-super") != 0)
+    _read_bindings(node->getChild("mod-super"), binding_list,
+                   modifiers|KEYMOD_SUPER);
 }
 
 
@@ -1114,6 +1124,8 @@ FGInput::mouse_mode::~mouse_mode ()
 FGInput::mouse::mouse ()
   : x(-1),
     y(-1),
+    save_x(-1),
+    save_y(-1),
     nModes(1),
     current_mode(0),
     modes(0)