--- a/MenuPanel.st Fri Mar 19 19:58:02 2004 +0100
+++ b/MenuPanel.st Sat Mar 20 14:18:27 2004 +0100
@@ -2740,7 +2740,8 @@
buttonRelease:button x:x y:y
"button release action; accept selection and close all views
"
- |topMenu dstMenu item srcPoint dstPoint subm doAction|
+ |topMenu dstMenu item srcPoint dstPoint subm hideMenuAndPerformAction
+ buttonReleaseTime menuOpenTime ev|
topMenu := self topMenu.
topMenu openDelayed:nil.
@@ -2751,20 +2752,19 @@
dstMenu := topMenu activeMenu.
- doAction := dstMenu selection notNil
- or:[dstMenu isPopUpView not].
-
- doAction ifFalse:[
- doAction := hideOnRelease.
- ((OperatingSystem
- millisecondTimeDeltaBetween:(Time millisecondClockValue)
- and:(dstMenu mapTime))
- > (PopUpMenu maxClickTimeToStayOpen)) ifFalse:[
- doAction := false
- ]
- ].
-
- doAction ifTrue:[
+ hideMenuAndPerformAction := dstMenu selection notNil or:[dstMenu isPopUpView not].
+
+ hideMenuAndPerformAction ifFalse:[
+ hideOnRelease ifTrue:[
+ buttonReleaseTime := Time millisecondClockValue.
+ menuOpenTime := dstMenu mapTime.
+"/ t := windowGroup lastEvent timeStamp.
+ hideMenuAndPerformAction := (OperatingSystem millisecondTimeDeltaBetween:buttonReleaseTime and:menuOpenTime)
+ > (PopUpMenu maxClickTimeToStayOpen).
+ ].
+ ].
+
+ hideMenuAndPerformAction ifTrue:[
srcPoint := x@y.
( (dstMenu := self detectMenuAtGrabPoint:srcPoint) notNil
@@ -7489,7 +7489,7 @@
!MenuPanel class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.386 2004-03-10 16:58:38 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.387 2004-03-20 13:18:27 cg Exp $'
! !
MenuPanel initialize!