diff options
author | amartin <olpc@xo-05-28-21.localdomain> | 2007-09-11 07:07:37 (GMT) |
---|---|---|
committer | amartin <olpc@xo-05-28-21.localdomain> | 2007-09-11 07:07:37 (GMT) |
commit | 4acb6bfbda5e60b7770feaf6dfb4a0d0197f8cc8 (patch) | |
tree | 22abca768ce201d2a2da5f57f9c0b7845b424348 /Jam/Popup.py | |
parent | b5d19eaeb6ea59cb6564d64d4519e788d0985d74 (diff) |
jam shortcuts
Diffstat (limited to 'Jam/Popup.py')
-rw-r--r-- | Jam/Popup.py | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/Jam/Popup.py b/Jam/Popup.py index 8bca64c..3d21e7f 100644 --- a/Jam/Popup.py +++ b/Jam/Popup.py @@ -1297,7 +1297,7 @@ class Shortcut( Popup ): # match keycodes from JamMain.valid_shortcuts layout = [ [ 0.0, [ 18, 19, 20, 21 ] ], [ 0.3, [ 32, 33, 34, 35 ] ], - [ 1.6, [ 48, 51 ] ], + [ 1.7, [ 47, 48, 51 ] ], [ 1.1, [ 60, 61 ] ] ] self.GUI["keyBox"] = gtk.VBox() @@ -1335,10 +1335,7 @@ class Shortcut( Popup ): self.key = None def setBlock( self, block ): - self.settingBlock = True - - if self.key != None: - self.GUI[self.key].set_active( False ) + self.ignoreToggle = True self.block = block self.key = self.block.getData( "key" ) @@ -1346,10 +1343,23 @@ class Shortcut( Popup ): if self.key != None: self.GUI[self.key].set_active( True ) - self.settingBlock = False + self.ignoreToggle = False Popup.setBlock( self, block ) + def on_key_press( self, widget, event ): + key = event.hardware_keycode + if key in self.owner.valid_shortcuts.keys(): + self.block.setData( "key", key ) + if self.key != None: # clear old key + self.ignoreToggle = True + self.GUI[self.key].set_active( False ) + self.key = None + self.ignoreToggle = False + self.popdown( True ) + else: + self.owner.onKeyPress( widget, event ) + def keyExpose( self, widget, event ): self.gc.set_clip_mask( self.owner.blockMask ) self.gc.set_clip_origin( event.area.x - Block.Block.KEYMASK_START, event.area.y ) @@ -1357,20 +1367,31 @@ class Shortcut( Popup ): return True def keyToggled( self, widget ): - if widget.get_active() and not self.settingBlock: - if self.key != None: + if self.ignoreToggle: + return + + if widget.get_active(): + self.block.setData( "key", widget.key ) + + self.ignoreToggle = True + + if self.key != None: # clear old key self.GUI[self.key].set_active( False ) + self.key = None - self.key = widget.key + widget.set_active( False ) - self.block.setData( "key", self.key ) - - self.popdown( True ) + self.ignoreToggle = False + + self.popdown( True ) def handleNone( self, widget ): if self.key != None: + self.ignoreToggle = True self.GUI[self.key].set_active( False ) self.key = None - self.block.setData( "key", self.key ) + self.ignoreToggle = False + + self.block.setData( "key", None ) self.popdown( True ) |