#BUGFIX by cg
authorClaus Gittinger <cg@exept.de>
Sat, 04 Aug 2018 17:03:05 +0200
changeset 18316 3d8bed1ef0a6
parent 18315 e66798f7c928
child 18317 436c9d4c5603
#BUGFIX by cg ensure that view is not left staying around
CodeCompletionHelpView.st
--- a/CodeCompletionHelpView.st	Sat Aug 04 13:38:21 2018 +0200
+++ b/CodeCompletionHelpView.st	Sat Aug 04 17:03:05 2018 +0200
@@ -16,7 +16,7 @@
 "{ NameSpace: Smalltalk }"
 
 View subclass:#CodeCompletionHelpView
-	instanceVariableNames:'myView editView'
+	instanceVariableNames:'myView editView delayedDestroyAction'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Help'
@@ -100,10 +100,81 @@
     "Created: / 04-08-2018 / 10:41:59 / Claus Gittinger"
 !
 
+handlesButtonMotion:state inView:aView
+    ^ false
+
+    "Created: / 04-08-2018 / 16:55:09 / Claus Gittinger"
+!
+
+handlesButtonPress:state inView:aView
+    ^ false
+
+    "Created: / 04-08-2018 / 16:55:20 / Claus Gittinger"
+!
+
+handlesButtonRelease:state inView:aView
+    ^ false
+
+    "Created: / 04-08-2018 / 16:55:24 / Claus Gittinger"
+!
+
+handlesKeyPress:key inView:aView
+    ^ true
+
+    "Created: / 04-08-2018 / 16:54:44 / Claus Gittinger"
+!
+
+handlesKeyRelease:key inView:aView
+    ^ false
+
+    "Created: / 04-08-2018 / 16:54:54 / Claus Gittinger"
+!
+
+handlesPointerEnter:state inView:aView
+    ^ true
+
+    "Created: / 04-08-2018 / 16:55:49 / Claus Gittinger"
+!
+
+handlesPointerLeave:state inView:aView
+    ^ true
+
+    "Created: / 04-08-2018 / 16:55:53 / Claus Gittinger"
+!
+
 keyPress:key x:x y:y
     self topView destroy
 
     "Created: / 04-08-2018 / 10:40:43 / Claus Gittinger"
+!
+
+keyPress:key x:x y:y view:aView
+    aView == (subViews firstIfEmpty:nil) ifTrue:[
+        self topView destroy
+    ].
+    ^ true
+
+    "Created: / 04-08-2018 / 17:00:33 / Claus Gittinger"
+!
+
+pointerEnter:state x:x y:y view:view
+    delayedDestroyAction notNil ifTrue:[
+        Processor removeTimedBlock:delayedDestroyAction.
+    ].    
+    ^ false
+
+    "Created: / 04-08-2018 / 17:01:39 / Claus Gittinger"
+!
+
+pointerLeave:state view:view
+    delayedDestroyAction notNil ifTrue:[
+        Processor removeTimedBlock:delayedDestroyAction.
+    ].    
+    delayedDestroyAction := [ self topView destroy ]. 
+    Processor addTimedBlock:delayedDestroyAction after:0.5.
+    ^ false
+
+    "Created: / 04-08-2018 / 16:57:18 / Claus Gittinger"
 ! !
 
 !CodeCompletionHelpView methodsFor:'initialization'!
@@ -137,9 +208,12 @@
     self enableMotionEvents.
     self enableButtonMotionEvents.
     self enableFocusEvents.
+    self subViews do:[:eachView |
+        eachView delegate:self.
+    ].
     super realize
 
-    "Modified: / 04-08-2018 / 10:42:23 / Claus Gittinger"
+    "Modified: / 04-08-2018 / 16:53:13 / Claus Gittinger"
 ! !
 
 !CodeCompletionHelpView methodsFor:'private'!