diff options
Diffstat (limited to 'graphics/osg34/files/patch-shift-key-fix')
-rw-r--r-- | graphics/osg34/files/patch-shift-key-fix | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/graphics/osg34/files/patch-shift-key-fix b/graphics/osg34/files/patch-shift-key-fix new file mode 100644 index 000000000000..87d9003ae693 --- /dev/null +++ b/graphics/osg34/files/patch-shift-key-fix @@ -0,0 +1,23 @@ +# Shift key not released if group switch is something other than Control-Shift: +# https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1218650.html + +--- src/osgGA/EventQueue.cpp.orig ++++ src/osgGA/EventQueue.cpp +@@ -337,7 +337,7 @@ void EventQueue::mouseButtonRelease(floa + + void EventQueue::keyPress(int key, double time, int unmodifiedKey) + { +- switch(key) ++ switch(unmodifiedKey) + { + case(GUIEventAdapter::KEY_Shift_L): _accumulateEventState->setModKeyMask(GUIEventAdapter::MODKEY_LEFT_SHIFT | _accumulateEventState->getModKeyMask()); break; + case(GUIEventAdapter::KEY_Shift_R): _accumulateEventState->setModKeyMask(GUIEventAdapter::MODKEY_RIGHT_SHIFT | _accumulateEventState->getModKeyMask()); break; +@@ -381,7 +381,7 @@ void EventQueue::keyPress(int key, doubl + + void EventQueue::keyRelease(int key, double time, int unmodifiedKey) + { +- switch(key) ++ switch(unmodifiedKey) + { + case(GUIEventAdapter::KEY_Shift_L): _accumulateEventState->setModKeyMask(~GUIEventAdapter::MODKEY_LEFT_SHIFT & _accumulateEventState->getModKeyMask()); break; + case(GUIEventAdapter::KEY_Shift_R): _accumulateEventState->setModKeyMask(~GUIEventAdapter::MODKEY_RIGHT_SHIFT & _accumulateEventState->getModKeyMask()); break; |