Ticket #3772: 0001-Hack-to-allow-SHIFT-and-ALT-GR-mask.patch

File 0001-Hack-to-allow-SHIFT-and-ALT-GR-mask.patch, 2.0 KB (added by humitos, 12 years ago)
  • keyboard.py

    From bacaa36ef986e9ad9d9ec3bc55c14ee925c6df31 Mon Sep 17 00:00:00 2001
    From: Manuel Kaufmann <humitos@gmail.com>
    Date: Wed, 8 Aug 2012 10:52:13 -0300
    Subject: [PATCH 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..53220ed 100644
    a b class KeyboardWidget(KeyboardData, Gtk.DrawingArea): 
    506506        # Hack to get the current modifier state - which will not be represented by the event.
    507507        # state = Gdk.device_get_core_pointer().get_state(self.get_window())[1]
    508508
    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 = 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 = Gdk.ModifierType.MOD5_MASK
     520            else:
     521                state = 0
     522
     523        if self.active_group != event.group or self.active_state != state:
    510524            self.active_group = event.group
    511             self.active_state = event.state
     525            self.active_state = state
    512526
    513527            self.queue_draw()
    514528
    515529        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)
    517531            if not self.letter_map.has_key(sig):
    518532                self.letter_map[sig] = event.string
    519533                self.queue_draw()