XWorkstation.st
changeset 4928 4e457b74f5d2
parent 4845 962f39074c53
child 5033 27bc058343f0
--- a/XWorkstation.st	Mon Mar 10 10:37:42 2008 +0100
+++ b/XWorkstation.st	Sat Mar 15 18:17:21 2008 +0100
@@ -562,8 +562,6 @@
 !XWorkstation class methodsFor:'initialization'!
 
 initialize
-    |d|
-
     ConservativeSync := OperatingSystem platformName == #win32.
 
     "/ some XServers crash, when given too long strings in XDrawString/XDrawInageString.
@@ -575,17 +573,18 @@
     DefaultXLibTimeoutForWindowCreation := 5*60.
 
     RawKeySymTranslation isNil ifTrue:[
-	"/ the following table maps X-keyevents to ST/X
-	"/ device independend events.
-	"/ It is NOT meant as a keyboardMap replacement.
-
-	RawKeySymTranslation := d := Dictionary new.
-	d at:'Delete_line' put:#DeleteLine.
-	d at:'Delete_word' put:#DeleteWord.
-	d at:'Down' put:#CursorDown.
-	d at:'Up' put:#CursorUp.
-	d at:'Left' put:#CursorLeft.
-	d at:'Right' put:#CursorRight.
+        "/ the following table maps X-keyevents to ST/X
+        "/ device independend events.
+        "/ It is NOT meant as a keyboardMap replacement.
+
+        RawKeySymTranslation := Dictionary new:6.
+        RawKeySymTranslation
+            at:#'Delete_line' put:#DeleteLine;
+            at:#'Delete_word' put:#DeleteWord;
+            at:#Down put:#CursorDown;
+            at:#Up put:#CursorUp;
+            at:#Left put:#CursorLeft;
+            at:#Right put:#CursorRight.
     ]
 
     "Modified: / 27.4.1999 / 17:21:30 / cg"
@@ -4578,24 +4577,32 @@
 keyPress:view key:key code:keyCode state:state x:x y:y rootX:rX rootY:rY time:time
     "forward a key-press event for some view"
 
+    |commonKey|
+
     lastEventTime := time.
     altDown := state bitTest:altModifierMask.
     metaDown := state bitTest:metaModifierMask.
     shiftDown := state bitTest:(self shiftModifierMask).
     ctrlDown := state bitTest:(self ctrlModifierMask).
     key isNil ifTrue:[
-	"/ happens sometimes on some systems
-	"/ (alt-graph on sun has no keysym)
-	^ self
+        "/ happens sometimes on some systems
+        "/ (alt-graph on sun has no keysym)
+        ^ self
     ].
     eventRootX := rX.
     eventRootY := rY.
-    self keyPress:key x:x y:y view:view.
+
+    "very low-level mapping of X11 event symbols to common ST/X event symbols"
+    commonKey := rawKeySymTranslation at:key ifAbsent:key.
+
+    self keyPress:commonKey x:x y:y view:view.
 !
 
 keyRelease:view key:key code:keyCode state:state x:x y:y rootX:rX rootY:rY time:time
     "forward a key-release event for some view"
 
+    |commonKey|
+
     lastEventTime := time.
     altDown := state bitTest:altModifierMask.
     metaDown := state bitTest:metaModifierMask.
@@ -4603,13 +4610,17 @@
     ctrlDown := state bitTest:(self ctrlModifierMask).
 
     key isNil ifTrue:[
-	"/ happens sometimes on some systems
-	"/ (alt-graph on sun has no keysym)
-	^ self
+        "/ happens sometimes on some systems
+        "/ (alt-graph on sun has no keysym)
+        ^ self
     ].
     eventRootX := rX.
     eventRootY := rY.
-    self keyRelease:key x:x y:y view:view.
+
+    "very low-level mapping of X11 event symbols to common ST/X event symbols"
+    commonKey := rawKeySymTranslation at:key ifAbsent:key.
+
+    self keyRelease:commonKey x:x y:y view:view.
 !
 
 mappingNotify:view request:what event:eB
@@ -8749,23 +8760,6 @@
     "return the Xlib mask bit for the super modifier key"
 
     ^ self modifier4Mask
-!
-
-translateKey:untranslatedKey forView:aView
-    "Return the key translated via the translation table.
-     Here, we preTranslate the key into a common ST/X symbolic name,
-     which gets further processed in the superclasses translation method."
-
-    |key|
-
-    key := untranslatedKey.
-    (rawKeySymTranslation includesKey:key) ifTrue:[
-	key := rawKeySymTranslation at:key.
-    ].
-    key isCharacter ifFalse:[
-	key := key asSymbol
-    ].
-    ^ super translateKey:key forView:aView
 ! !
 
 !XWorkstation methodsFor:'misc'!
@@ -11933,7 +11927,7 @@
 !XWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.495 2007-11-23 22:07:14 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.496 2008-03-15 17:17:21 stefan Exp $'
 ! !
 
 XWorkstation initialize!