From 40638ecc76f6177612cc5ca6b99ada1122c83fb4 Mon Sep 17 00:00:00 2001
From: Manuel Kaufmann <humitos@gmail.com>
Date: Wed, 8 Aug 2012 10:52:13 -0300
Subject: [PATCH v2 Typing Turtle] Hack to allow SHIFT and ALT GR mask
When SHIFT or ALT GR are pressed the characters on the keyboard change
to show the correct symbols that are going to be typed.
Signed-off-by: Manuel Kaufmann <humitos@gmail.com>
---
keyboard.py | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/keyboard.py b/keyboard.py
index 90cbf98..5668208 100644
a
|
b
|
class KeyboardWidget(KeyboardData, Gtk.DrawingArea): |
506 | 506 | # Hack to get the current modifier state - which will not be represented by the event. |
507 | 507 | # state = Gdk.device_get_core_pointer().get_state(self.get_window())[1] |
508 | 508 | |
509 | | if self.active_group != event.group or self.active_state != event.state: |
| 509 | # This is a NEW HACK for the Gtk3 version of Typing Turtle. I |
| 510 | # didn't find the way to translate the old hack into a new one |
| 511 | state = event.state |
| 512 | if event.hardware_keycode in (50, 62): |
| 513 | if event.type == Gdk.EventType.KEY_PRESS: |
| 514 | state = state | Gdk.ModifierType.SHIFT_MASK |
| 515 | else: |
| 516 | state = 0 |
| 517 | if event.hardware_keycode == 92: |
| 518 | if event.type == Gdk.EventType.KEY_PRESS: |
| 519 | state = state | Gdk.ModifierType.MOD5_MASK |
| 520 | else: |
| 521 | state = 0 |
| 522 | |
| 523 | if self.active_group != event.group or self.active_state != state: |
510 | 524 | self.active_group = event.group |
511 | | self.active_state = event.state |
| 525 | self.active_state = state |
512 | 526 | |
513 | 527 | self.queue_draw() |
514 | 528 | |
515 | 529 | if event.string: |
516 | | sig = self.format_key_sig(event.hardware_keycode, event.state, event.group) |
| 530 | sig = self.format_key_sig(event.hardware_keycode, state, event.group) |
517 | 531 | if not self.letter_map.has_key(sig): |
518 | 532 | self.letter_map[sig] = event.string |
519 | 533 | self.queue_draw() |