DeviceWorkstation.st
changeset 7956 7733d763a5a5
parent 7881 61258c63c944
child 7987 cd34a0209187
--- a/DeviceWorkstation.st	Wed Feb 22 21:24:07 2017 +0100
+++ b/DeviceWorkstation.st	Thu Feb 23 14:08:40 2017 +0100
@@ -1259,12 +1259,18 @@
 waitButton
     "wait for any button to be pressed"
 
-    [self anyButtonPressed] whileFalse:[Delay waitForSeconds:0.05].
+    |delay|
+
+    delay := Delay forSeconds:0.05.
+
+    [self anyButtonPressed] whileFalse:[delay wait].
 
     "
      Sensor waitButton.
      Sensor waitNoButton
     "
+
+    "Modified: / 23-02-2017 / 13:31:56 / stefan"
 !
 
 waitClickButton
@@ -1288,12 +1294,18 @@
 waitNoButton
     "wait for no button to be pressed"
 
-    [self anyButtonPressed] whileTrue:[Delay waitForSeconds:0.05].
+    |delay|
+
+    delay := Delay forSeconds:0.05.
+
+    [self anyButtonPressed] whileTrue:[delay wait].
 
     "
      Sensor waitButton.
      Sensor waitNoButton
     "
+
+    "Modified: / 23-02-2017 / 13:32:33 / stefan"
 ! !
 
 !DeviceWorkstation methodsFor:'Signal constants'!
@@ -6409,14 +6421,15 @@
      Start with initialRectangle.
      Can be used for dragging operations."
 
-    |curs origin root rect prevGrab|
-
+    |curs origin root rect prevGrab delay|
+
+    delay := Delay forSeconds:0.05.
     curs := Cursor origin onDevice:self.
 
     "
      just in case; wait for button to be down ...
     "
-    [self leftButtonPressed] whileFalse:[Delay waitForSeconds:0.05].
+    [self leftButtonPressed] whileFalse:[delay wait].
 
     root := self rootView.
 
@@ -6456,7 +6469,7 @@
                 self flush.
                 origin := newOrigin.
             ] ifFalse:[
-                Delay waitForSeconds:0.05
+                delay wait.
             ]
         ].
         root displayRectangle:rect.
@@ -6480,7 +6493,8 @@
      Display originFromUser:200@200
     "
 
-    "Modified: / 18.8.1998 / 15:00:14 / cg"
+    "Modified: / 18-08-1998 / 15:00:14 / cg"
+    "Modified: / 23-02-2017 / 13:27:39 / stefan"
 !
 
 pointFromUser
@@ -6524,7 +6538,7 @@
      Show aCursor while waiting. Pressing shift or ctrl cancels the operation,
      and aborts"
 
-    |p prevGrab prevKbdGrab|
+    |p prevGrab prevKbdGrab delay|
 
     prevGrab := activePointerGrab.
     prevKbdGrab := activeKeyboardGrab.
@@ -6532,43 +6546,44 @@
     self ungrabPointer.
     self grabPointerInView:(self rootView) withCursor:(aCursor onDevice:self).
 
+    delay := Delay forSeconds:0.05.
     "
      wait for no leftButton...
     "
     [self leftButtonPressed] whileTrue:[
-	Delay waitForSeconds:0.05.
+        delay wait.
     ].
 
     [
-	self grabKeyboardInView:(self rootView).
-
-	"
-	 wait for leftButton...
-	 ctrl, shift or escape terminate that operation
-	"
-	[self leftButtonPressed] whileFalse:[
-	    (self ctrlDown or:[self shiftDown or:[activePointerGrab == nil]]) ifTrue:[
-		AbortOperationRequest raise.
-		^ nil
-	    ].
-	    feedbackBlockOrNil notNil ifTrue:[
-		feedbackBlockOrNil value:(self pointerPosition)
-	    ].
-	    Delay waitForSeconds:0.05.
-	].
-
-	p := self pointerPosition.
+        self grabKeyboardInView:(self rootView).
+
+        "
+         wait for leftButton...
+         ctrl, shift or escape terminate that operation
+        "
+        [self leftButtonPressed] whileFalse:[
+            (self ctrlDown or:[self shiftDown or:[activePointerGrab == nil]]) ifTrue:[
+                AbortOperationRequest raise.
+                ^ nil
+            ].
+            feedbackBlockOrNil notNil ifTrue:[
+                feedbackBlockOrNil value:(self pointerPosition)
+            ].
+            delay wait.
+        ].
+
+        p := self pointerPosition.
     ] ensure:[
-	self ungrabKeyboard.
-	prevKbdGrab notNil ifTrue:[
-	    self grabKeyboardInView:prevKbdGrab
-	].
-	self ungrabPointer.
-	prevGrab notNil ifTrue:[
-	    self grabPointerInView:prevGrab
-	].
-	"flush all events pending on myself"
-	self disposeButtonEventsFor:nil.
+        self ungrabKeyboard.
+        prevKbdGrab notNil ifTrue:[
+            self grabKeyboardInView:prevKbdGrab
+        ].
+        self ungrabPointer.
+        prevGrab notNil ifTrue:[
+            self grabPointerInView:prevGrab
+        ].
+        "flush all events pending on myself"
+        self disposeButtonEventsFor:nil.
     ].
 
     ^ p
@@ -6581,6 +6596,7 @@
     "
 
     "Modified: / 08-02-2011 / 21:48:08 / cg"
+    "Modified: / 23-02-2017 / 13:28:33 / stefan"
 !
 
 rectangleFromUser
@@ -6631,7 +6647,7 @@
      Start with initialRectangle.
      A helper for rectangleFromUser; can also be used for resizing operations."
 
-    |curs1 origin corner root rect doRegrab prevGrab|
+    |curs1 origin corner root rect doRegrab prevGrab delay|
 
     "/ regrabbing leads to horrible flicker and
     "/ events being sent to applications under the mouse.
@@ -6639,9 +6655,9 @@
     doRegrab := self class ~~ WinWorkstation.
 
     keepExtent ifTrue:[
-	curs1 := Cursor origin
+        curs1 := Cursor origin
     ] ifFalse:[
-	curs1 := Cursor corner
+        curs1 := Cursor corner
     ].
     curs1 := curs1 onDevice:self.
     root := self rootView.
@@ -6654,92 +6670,94 @@
     root clippedByChildren:false.
     root foreground:blackColor background:whiteColor.
 
+    delay := Delay forSeconds:0.05.
+
     root xoring:[
-	|left right top bottom newOrigin newCorner p curs|
-
-	keepExtent ifFalse:[
-	    corner := origin.
-	    rect := origin corner:corner.
-	    root displayRectangle:rect.
-	].
-
-	prevGrab := activePointerGrab.
-	self grabPointerInView:root withCursor:curs1.
-
-	"
-	 just in case; wait for button to be down ...
-	"
-	[self leftButtonPressed] whileFalse:[Delay waitForSeconds:0.05].
-
-	keepExtent ifTrue:[
-	    p := self pointerPosition.
-	    origin := p.
-	    corner := origin + initialRectangle extent.
-	    rect := origin corner:corner.
-	    root displayRectangle:rect.
-	].
-
-	[self leftButtonPressed] whileTrue:[
-	    left := initialRectangle origin x.
-	    top := initialRectangle origin y.
-	    right := initialRectangle corner x.
-	    bottom := initialRectangle corner y.
-
-	    p := self pointerPosition.
-	    keepExtent ifTrue:[
-		newOrigin := p.
-		newCorner := newOrigin + initialRectangle extent.
-		curs := curs1.
-	    ] ifFalse:[
-		p x < initialRectangle left ifTrue:[
-		    p y < initialRectangle top ifTrue:[
-			curs := Cursor topLeft.
-			left := p x.
-			top := p y.
-		    ] ifFalse:[
-			curs := Cursor bottomLeft.
-			left := p x.
-			bottom := p y
-		    ]
-		] ifFalse:[
-		    p y < initialRectangle top ifTrue:[
-			curs := Cursor topRight.
-			right := p x.
-			top := p y
-		    ] ifFalse:[
-			curs := Cursor bottomRight.
-			right := p x.
-			bottom := p y
-		    ]
-		].
-
-		newOrigin := left @ top.
-		newCorner := right @ bottom.
-	    ].
-
-	    ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
-		root displayRectangle:rect.
-		doRegrab ifTrue:[
-		    self grabPointerInView:root withCursor:curs1.
-		].
-
-		origin :=  newOrigin.
-		corner :=  newCorner.
-		rect := origin corner:corner.
-		root displayRectangle:rect.
-		self disposeButtonEventsFor:nil.
-		self flush.
-	    ] ifFalse:[
-		Delay waitForSeconds:0.05
-	    ]
-	].
-	root displayRectangle:rect.
+        |left right top bottom newOrigin newCorner p curs|
+
+        keepExtent ifFalse:[
+            corner := origin.
+            rect := origin corner:corner.
+            root displayRectangle:rect.
+        ].
+
+        prevGrab := activePointerGrab.
+        self grabPointerInView:root withCursor:curs1.
+
+        "
+         just in case; wait for button to be down ...
+        "
+        [self leftButtonPressed] whileFalse:[delay wait].
+
+        keepExtent ifTrue:[
+            p := self pointerPosition.
+            origin := p.
+            corner := origin + initialRectangle extent.
+            rect := origin corner:corner.
+            root displayRectangle:rect.
+        ].
+
+        [self leftButtonPressed] whileTrue:[
+            left := initialRectangle origin x.
+            top := initialRectangle origin y.
+            right := initialRectangle corner x.
+            bottom := initialRectangle corner y.
+
+            p := self pointerPosition.
+            keepExtent ifTrue:[
+                newOrigin := p.
+                newCorner := newOrigin + initialRectangle extent.
+                curs := curs1.
+            ] ifFalse:[
+                p x < initialRectangle left ifTrue:[
+                    p y < initialRectangle top ifTrue:[
+                        curs := Cursor topLeft.
+                        left := p x.
+                        top := p y.
+                    ] ifFalse:[
+                        curs := Cursor bottomLeft.
+                        left := p x.
+                        bottom := p y
+                    ]
+                ] ifFalse:[
+                    p y < initialRectangle top ifTrue:[
+                        curs := Cursor topRight.
+                        right := p x.
+                        top := p y
+                    ] ifFalse:[
+                        curs := Cursor bottomRight.
+                        right := p x.
+                        bottom := p y
+                    ]
+                ].
+
+                newOrigin := left @ top.
+                newCorner := right @ bottom.
+            ].
+
+            ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
+                root displayRectangle:rect.
+                doRegrab ifTrue:[
+                    self grabPointerInView:root withCursor:curs1.
+                ].
+
+                origin :=  newOrigin.
+                corner :=  newCorner.
+                rect := origin corner:corner.
+                root displayRectangle:rect.
+                self disposeButtonEventsFor:nil.
+                self flush.
+            ] ifFalse:[
+                delay wait.
+            ]
+        ].
+        root displayRectangle:rect.
     ].
 
 
     self ungrabPointer.
     prevGrab notNil ifTrue:[
-	self grabPointerInView:prevGrab
+        self grabPointerInView:prevGrab
     ].
 
     "flush all events pending on my display"
@@ -6757,8 +6775,9 @@
      Display rectangleFromUser:(100@100 corner:300@300) keepExtent:true
     "
 
-    "Created: / 24.7.1997 / 15:26:47 / cg"
-    "Modified: / 10.9.1998 / 17:38:41 / cg"
+    "Created: / 24-07-1997 / 15:26:47 / cg"
+    "Modified: / 10-09-1998 / 17:38:41 / cg"
+    "Modified: / 23-02-2017 / 13:30:21 / stefan"
 !
 
 topviewFromUser