ActiveHelp.st
changeset 2782 79eb7b58118e
parent 2779 b608ded19ff2
child 2783 cb3420e40ed1
--- a/ActiveHelp.st	Mon Nov 02 15:54:16 2009 +0100
+++ b/ActiveHelp.st	Wed Nov 04 10:57:39 2009 +0100
@@ -355,8 +355,12 @@
 buttonMotion:buttonAndModifierState x:x y:y view:aView
     "handle motion events - prepare to show help"
 
+    |realViewUnderCursor realP|
+
     buttonAndModifierState == 0 ifTrue:[
-        self handleMouseIn:aView x:x y:y.
+        realViewUnderCursor := aView device viewFromPoint:(aView pointerPosition).
+        realP := aView device translatePoint:(x@y) fromView:aView toView:realViewUnderCursor.
+        self handleMouseIn:realViewUnderCursor x:realP x y:realP y.
     ].
     ^ false
 !
@@ -393,12 +397,13 @@
         ].
 
         "/ if there is a sensor, let the view do it itself (in its process)
-        sensor := aView sensor.
-        sensor notNil ifTrue:[
-          sensor flushEventsFor:self withType:#initiateHelpFor:at:.
-          sensor 
-            pushUserEvent:#initiateHelpFor:at: for:self 
-            withArguments:(Array with:aView with:(x @ y)).
+        (self targetViewInitiatesHelpViaSensor
+        and:[ (sensor := aView sensor) notNil ])
+        ifTrue:[
+            sensor flushEventsFor:self withType:#initiateHelpFor:at:.
+            sensor 
+                pushUserEvent:#initiateHelpFor:at: for:self 
+                withArguments:(Array with:aView with:(x @ y)).
         ] ifFalse:[
             self initiateHelpFor:aView at:(x @ y).
         ]
@@ -580,6 +585,13 @@
 
     "Created: / 26.10.1997 / 23:28:52 / cg"
     "Modified: / 8.8.1998 / 13:36:19 / cg"
+!
+
+targetViewInitiatesHelpViaSensor
+    "true if the target view is asked to show the help via the sensor;
+     false, if I do it myself synchronously."
+
+    ^ true
 ! !
 
 !ActiveHelp methodsFor:'queries'!
@@ -723,11 +735,11 @@
 !ActiveHelp class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/ActiveHelp.st,v 1.64 2009-11-02 12:59:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/ActiveHelp.st,v 1.65 2009-11-04 09:57:39 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview2/ActiveHelp.st,v 1.64 2009-11-02 12:59:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/ActiveHelp.st,v 1.65 2009-11-04 09:57:39 cg Exp $'
 ! !
 
 ActiveHelp initialize!