Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Jam/Popup.py
diff options
context:
space:
mode:
authoramartin <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)
commit4acb6bfbda5e60b7770feaf6dfb4a0d0197f8cc8 (patch)
tree22abca768ce201d2a2da5f57f9c0b7845b424348 /Jam/Popup.py
parentb5d19eaeb6ea59cb6564d64d4519e788d0985d74 (diff)
jam shortcuts
Diffstat (limited to 'Jam/Popup.py')
-rw-r--r--Jam/Popup.py47
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 )