Fix keyboard input recognition for special keys and cross-platform modifiers
- Add explicit handling for backspace, delete, escape, and space keys - Fix modifier key mappings to work correctly on Linux/Windows (Ctrl key was incorrectly mapped to 'cmd') - Add platform detection for proper modifier key handling across macOS, Linux, and Windows Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -108,6 +108,14 @@ class GraphicsView(QGraphicsView):
|
||||
textFromCode = 'enter'
|
||||
elif code == 16777217:
|
||||
textFromCode = 'tab'
|
||||
elif code == 16777219:
|
||||
textFromCode = 'backspace'
|
||||
elif code == 16777223:
|
||||
textFromCode = 'delete'
|
||||
elif code == 16777216:
|
||||
textFromCode = 'esc'
|
||||
elif code == 32:
|
||||
textFromCode = 'space'
|
||||
else:
|
||||
textFromCode = chr(code)
|
||||
except :
|
||||
@@ -130,9 +138,15 @@ class GraphicsView(QGraphicsView):
|
||||
if(pressedModifiers & Qt.AltModifier):
|
||||
modifierTextList.append('alt')
|
||||
if(pressedModifiers & Qt.ControlModifier):
|
||||
if sys.platform == 'darwin': # macOS
|
||||
modifierTextList.append('cmd') # on the mac this is the command key
|
||||
else: # Linux and Windows
|
||||
modifierTextList.append('ctrl')
|
||||
if(pressedModifiers & Qt.MetaModifier):
|
||||
modifierTextList.append('ctrl')# on the mac this is the control key
|
||||
if sys.platform == 'darwin': # macOS
|
||||
modifierTextList.append('ctrl') # on the mac this is the control key
|
||||
else: # Linux and Windows
|
||||
modifierTextList.append('win')
|
||||
|
||||
return modifierTextList
|
||||
|
||||
@@ -629,11 +643,15 @@ class App(QWidget):
|
||||
if(pressedModifiers & Qt.AltModifier):
|
||||
modifierTextList.append('alt')
|
||||
if(pressedModifiers & Qt.ControlModifier):
|
||||
#modifierTextList.append('ctrl')
|
||||
if sys.platform == 'darwin': # macOS
|
||||
modifierTextList.append('cmd') # on the mac this is the command key
|
||||
else: # Linux and Windows
|
||||
modifierTextList.append('ctrl')
|
||||
if(pressedModifiers & Qt.MetaModifier):
|
||||
modifierTextList.append('ctrl')# on the mac this is the control key
|
||||
#modifierTextList.append('win')
|
||||
if sys.platform == 'darwin': # macOS
|
||||
modifierTextList.append('ctrl') # on the mac this is the control key
|
||||
else: # Linux and Windows
|
||||
modifierTextList.append('win')
|
||||
return set(modifierTextList) == set(self.currentInputModifiers)
|
||||
|
||||
def simplifyModifierList(self, modifierList):
|
||||
|
||||
Reference in New Issue
Block a user