UIObjectView.st
changeset 993 88a214788277
parent 967 c3f483120cd7
child 997 2a8a32256d4a
--- a/UIObjectView.st	Sat Sep 12 18:12:27 1998 +0200
+++ b/UIObjectView.st	Mon Sep 14 19:58:20 1998 +0200
@@ -475,6 +475,7 @@
 exposeX:x y:y width:w height:h
     "handle an expose event from device; redraw selection
     "
+
     resizeData isNil ifTrue:[
         super exposeX:x y:y width:w height:h.
 
@@ -489,7 +490,8 @@
             ].
             self showSelected:aComponent
         ]
-    ]
+    ].
+
 
 !
 
@@ -620,20 +622,28 @@
 invertOutlineOf:something
     "invert outline of an object or collection of objects
     "
-    |wasClipped p|
+    |wasClipped|
 
     (wasClipped := clipChildren) ifTrue:[
         self clippedByChildren:(clipChildren := false).
     ].
 
-    something isCollection ifTrue:[
-        something do:[:v|
-            p := v originRelativeTo:self.
-            self xoring:[self displayRectangle:(p extent:v extent)].
+    self xoring:[
+        |p|
+
+        something isCollection ifTrue:[
+            something do:[:v |
+                |p|
+
+                p := v originRelativeTo:self.
+                self displayRectangle:(p extent:v extent).
+            ].
+        ] ifFalse:[
+            |p|
+
+            p := something originRelativeTo:self.
+            self displayRectangle:(p extent:something extent).
         ]
-    ] ifFalse:[
-        p := something originRelativeTo:self.
-        self xoring:[self displayRectangle:(p extent:something extent)]
     ].
 
     wasClipped ifTrue:[
@@ -945,65 +955,65 @@
 
     selectionHiddenLevel ~~ 0 ifTrue:[^ self].
 
-    "/ new: simply create a little view ontop,
-    "/ and move it over the handles. This will generate
-    "/ the required expose events automatically.
-
-    v := SimpleView in:self.
-    self handlesOf:aComponent do:[:rec :wht | 
-        r isNil 
-            ifTrue:[r := rec]
-            ifFalse:[r := r merge:rec].
-    ].
-
-    "/ if the area is small, make one big rectangle-expose
-    r area < 10000 ifTrue:[
-        v origin:r origin extent:r extent.
-        v map.
-        v unmap.
-    ] ifFalse:[
-        self handlesOf:aComponent do:[:rec :wht | 
-            v origin:rec origin extent:rec extent.
-            v map.
-            v unmap.
-        ].
-    ].
-    v destroy.
-    ^ self.
-
-"/ OLD code:
-"/    (wasClipped := clipChildren) ifTrue:[
-"/        self clippedByChildren:(clipChildren := false). 
+"/    "/ new: simply create a little view ontop,
+"/    "/ and move it over the handles. This will generate
+"/    "/ the required expose events automatically.
+"/    "/ mhmh - does not work correctly with inverted frame (exposes destroy it)
+"/
+"/    v := SimpleView in:self.
+"/    self handlesOf:aComponent do:[:rec :wht | 
+"/        r isNil 
+"/            ifTrue:[r := rec]
+"/            ifFalse:[r := r merge:rec].
 "/    ].
 "/
-"/    self handlesOf:aComponent do:[:rec :wht| self clearRectangle:rec ].
-"/
-"/    wasClipped ifTrue:[
-"/        self clippedByChildren:(clipChildren := true). 
+"/    "/ if the area is small, make one big rectangle-expose
+"/    r area < 10000 ifTrue:[
+"/        v origin:r origin extent:r extent.
+"/        v map.
+"/        v unmap.
+"/    ] ifFalse:[
+"/        self handlesOf:aComponent do:[:rec :wht | 
+"/            v origin:rec origin extent:rec extent.
+"/            v map.
+"/            v unmap.
+"/        ].
 "/    ].
-"/
-"/    "/ must redraw all components which are affected b the handles
-"/    r := (aComponent originRelativeTo:self) - (3@3) extent:(aComponent extent + (6@6)).
-"/
-"/    subViews do:[:anotherComponent |
-"/        |absOrg absFrame|
-"/
-"/        anotherComponent ~~ inputView ifTrue:[
-"/            absOrg := anotherComponent originRelativeTo:self.
-"/            absFrame := absOrg extent:(anotherComponent extent).
-"/            (absFrame intersects:r) ifTrue:[
-"/                anotherComponent withAllSubViewsDo:[:v |
-"/                    v shown ifTrue:[
-"/                        aSet notNil ifTrue:[
-"/                            aSet add:v
-"/                        ] ifFalse:[
-"/                            self handleAffectedViews:v
-"/                        ]
-"/                    ]
-"/                ]
-"/            ]
-"/        ]
-"/    ].
+"/    v destroy.
+"/    ^ self.
+
+    (wasClipped := clipChildren) ifTrue:[
+        self clippedByChildren:(clipChildren := false). 
+    ].
+
+    self handlesOf:aComponent do:[:rec :wht| self clearRectangle:rec ].
+
+    wasClipped ifTrue:[
+        self clippedByChildren:(clipChildren := true). 
+    ].
+
+    "/ must redraw all components which are affected b the handles
+    r := (aComponent originRelativeTo:self) - (3@3) extent:(aComponent extent + (6@6)).
+
+    subViews do:[:anotherComponent |
+        |absOrg absFrame|
+
+        anotherComponent ~~ inputView ifTrue:[
+            absOrg := anotherComponent originRelativeTo:self.
+            absFrame := absOrg extent:(anotherComponent extent).
+            (absFrame intersects:r) ifTrue:[
+                anotherComponent withAllSubViewsDo:[:v |
+                    v shown ifTrue:[
+                        aSet notNil ifTrue:[
+                            aSet add:v
+                        ] ifFalse:[
+                            self handleAffectedViews:v
+                        ]
+                    ]
+                ]
+            ]
+        ]
+    ].
 
     "Modified: / 24.8.1998 / 12:19:38 / cg"
 !