aboutsummaryrefslogtreecommitdiff
path: root/graphics/osg34/files/patch-shift-key-fix
blob: 87d9003ae6939c254a4b9157aa5f23d054dcbdc1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;