# HG changeset patch # User Claus Gittinger # Date 1528915465 -7200 # Node ID 7335deef08c33d873bf88c8f83c9b5a051ef2c63 # Parent 900bfc4b45d5941acddc01c328606f37e82f9499 #DOCUMENTATION by cg class: ActiveHelp category of: #handleMouseIn:x:y: diff -r 900bfc4b45d5 -r 7335deef08c3 ActiveHelp.st --- a/ActiveHelp.st Mon Jun 11 10:33:45 2018 +0200 +++ b/ActiveHelp.st Wed Jun 13 20:44:25 2018 +0200 @@ -1,5 +1,3 @@ -"{ Encoding: utf8 }" - " COPYRIGHT (c) 1995 by Claus Gittinger All Rights Reserved @@ -429,6 +427,51 @@ "Modified: / 11-06-2018 / 10:31:42 / Claus Gittinger" ! +handleMouseIn:aView x:x y:y + "handle motion events - if the mousepointer left the + previous helped view, hide the help" + + Debugging ifTrue:['mouse in' infoPrintCR]. + (self interestedIn:aView) ifFalse:[ + Debugging ifTrue:['not interested 0' infoPrintCR]. + ^ self + ]. + + Error handle:[:ex | + InfoPrinting == true ifTrue:[ + '---------------------' infoPrintCR. + ex description infoPrintCR. + ex suspendedContext fullPrintAll. + ]. + ] do:[ + |sensor| + + "/ self stopHelpDisplayProcess. + Debugging ifTrue:['hideIf' infoPrintCR]. + self hideIfPointerLeft:aView. + + "/ check again, in case the stop/hide changed something... + (self interestedIn:aView) ifFalse:[ + Debugging ifTrue:['not interested2' infoPrintCR]. + ^ self + ]. + + "/ if there is a sensor, let the view do it itself (in its process) + (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). + ] + ]. + + "Modified (format): / 08-06-2018 / 10:17:12 / Claus Gittinger" +! + keyPress:key x:x y:y view:view "unconditionally hide the help view" @@ -594,51 +637,6 @@ !ActiveHelp methodsFor:'private'! -handleMouseIn:aView x:x y:y - "handle motion events - if the mousepointer left the - previous helped view, hide the help" - - Debugging ifTrue:['mouse in' infoPrintCR]. - (self interestedIn:aView) ifFalse:[ - Debugging ifTrue:['not interested 0' infoPrintCR]. - ^ self - ]. - - Error handle:[:ex | - InfoPrinting == true ifTrue:[ - '---------------------' infoPrintCR. - ex description infoPrintCR. - ex suspendedContext fullPrintAll. - ]. - ] do:[ - |sensor| - - "/ self stopHelpDisplayProcess. - Debugging ifTrue:['hideIf' infoPrintCR]. - self hideIfPointerLeft:aView. - - "/ check again, in case the stop/hide changed something... - (self interestedIn:aView) ifFalse:[ - Debugging ifTrue:['not interested2' infoPrintCR]. - ^ self - ]. - - "/ if there is a sensor, let the view do it itself (in its process) - (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). - ] - ]. - - "Modified (format): / 08-06-2018 / 10:17:12 / Claus Gittinger" -! - hideIfPointerLeft:aView "hide help, if the pointer is not in aView" !