Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/keyboard.py
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard.py')
-rw-r--r--keyboard.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/keyboard.py b/keyboard.py
index 90cbf98..3a05248 100644
--- a/keyboard.py
+++ b/keyboard.py
@@ -506,14 +506,28 @@ class KeyboardWidget(KeyboardData, Gtk.DrawingArea):
# Hack to get the current modifier state - which will not be represented by the event.
# state = Gdk.device_get_core_pointer().get_state(self.get_window())[1]
- if self.active_group != event.group or self.active_state != event.state:
+ # This is a NEW HACK for the Gtk3 version of Typing Turtle. I
+ # didn't find the way to translate the old hack into a new one
+ state = event.state
+ if event.hardware_keycode in (50, 62):
+ if event.type == Gdk.EventType.KEY_PRESS:
+ state |= Gdk.ModifierType.SHIFT_MASK
+ else:
+ state ^= Gdk.ModifierType.SHIFT_MASK
+ if event.hardware_keycode == 92:
+ if event.type == Gdk.EventType.KEY_PRESS:
+ state |= Gdk.ModifierType.MOD5_MASK
+ else:
+ state ^= Gdk.ModifierType.MOD5_MASK
+
+ if self.active_group != event.group or self.active_state != state:
self.active_group = event.group
- self.active_state = event.state
+ self.active_state = state
self.queue_draw()
if event.string:
- sig = self.format_key_sig(event.hardware_keycode, event.state, event.group)
+ sig = self.format_key_sig(event.hardware_keycode, state, event.group)
if not self.letter_map.has_key(sig):
self.letter_map[sig] = event.string
self.queue_draw()