comments
authorClaus Gittinger <cg@exept.de>
Thu, 13 Oct 2016 02:15:49 +0200
changeset 7617 3bcc92c94b66
parent 7616 07680ebea0f2
child 7618 50ccaeb61be1
comments
SimpleView.st
--- a/SimpleView.st	Thu Oct 13 00:58:44 2016 +0200
+++ b/SimpleView.st	Thu Oct 13 02:15:49 2016 +0200
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -82,7 +82,7 @@
 copyright
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -109,164 +109,167 @@
 
     [Instance variables:]
 
-        superView               <View>                  my superview i.e. the view I am in
-
-        subViews                <Collection>            the collection of subviews
-                                                        These are the views proper.
-
-        components              <Collection>            collection of gadgets (will be merged with subViews, soon)
-                                                        These are lightweight gadgets (not seen by windows/x11).
-
-        styleSheet              <ResourcePack>          contains widget attributes (see libview/styles/*.style)
-
-        resources               <ResourcePack>          contains national language translations (see lib*/resources/*.rs)
-
-        border                  <Border>                color and width of border
-
-        unused                  <nil>                   to keep the instVar size constant
-
-        viewShape               <Form>                  shape of view & border (if device supports it)
-
-        top                     <Number>                actual top coordinate (pixels) in superview
-
-        left                    <Number>                actual left coordinate (pixels) in superview
-
-        flagBits                <Integer>               flag bits (used to be individual booleans)
-            extendChanged                                   true if extend changed during setup
-            originChanged                                   true if origin changed during setup
-
-        relativeOrigin          <Number>                relative origin in percent within superview
-
-        relativeExtent          <Number>                relative extent in percent within superview
-
-        relativeCorner          <Number>                relative corner in percent within superview
-
-        originRule              <Block>                 rule to compute origin if superview changes size
-
-        extentRule              <Block>                 rule to compute extent if superview changes size
-
-        cornerRule              <Block>                 rule to compute corner if superview changes size
-
-        insets                  <Array>                 array with top, left, bottom & right insets (or nil)
-
-        layout                  <LayoutObject>          not yet implemented - will replace the above layout
-                                                        variables.
-
-        shown                   <Boolean>               true if visible (false if iconified, unmapped or covered)
-
-        hiddenOnRealize         <Boolean>               dont show automatically when superview is realized
-
-        name                    <String>                my name (future use for resources)
-
-        level (**)              <Number>                3D level relative to superview
-
-        margin                  <Number>                convenient margin; that is the number of pixels
-                                                        which are taken up by border plus 3D level
-                                                        (i.e. borderWidth + level abs)
-
-        innerClipRect           <Rectangle>             convenient inner clip (minus margin)
-
-        shadowColor (**)        <Color>                 color used to draw 3D shadowed edges
-
-        lightColor (**)         <Color>                 color used to draw 3D lighted edges
-
-        bitGravity              <nil | Symbol>          gravity of contents (if device supports it)
-
-        viewGravity             <nil | Symbol>          gravity of view (if device supports it)
-
-        controller              <nil | Controller>      the controller (if any)
-
-        windowGroup             <WindowGroup>           the windowGroup
-
-        preferredExtent(*)      <nil | Point>           preferredExtent overWrite
-                                                        if nonNil, the widget will not compute
-                                                        its pref-extent, but use that value.
-
-        explicitExtent(*)       <nil | Point>           preferredExtent overWrite
-                                                        if nonNil, the widget will not compute
-                                                        its pref-extent, but use that value.
-
-        dependents              <nil | Collection>      who depends on me
-
-        layoutManager
-
-        visibilityChannel
-
-        helpKey
-
-        dropTarget
+	superView               <View>                  my superview i.e. the view I am in
+
+	subViews                <Collection>            the collection of subviews
+							These are the views proper.
+
+	components              <Collection>            collection of gadgets (will be merged with subViews, soon)
+							These are lightweight gadgets (not seen by windows/x11).
+
+	styleSheet              <ResourcePack>          contains widget attributes (see libview/styles/*.style)
+
+	resources               <ResourcePack>          contains national language translations (see lib*/resources/*.rs)
+
+	border                  <Border>                color and width of border
+
+	unused                  <nil>                   to keep the instVar size constant
+
+	viewShape               <Form>                  shape of view & border (if device supports it)
+
+	top                     <Number>                actual top coordinate (pixels) in superview
+
+	left                    <Number>                actual left coordinate (pixels) in superview
+
+	flagBits                <Integer>               flag bits (used to be individual booleans)
+	    extendChanged                                   true if extend changed during setup
+	    originChanged                                   true if origin changed during setup
+
+	relativeOrigin          <Number>                relative origin in percent within superview
+
+	relativeExtent          <Number>                relative extent in percent within superview
+
+	relativeCorner          <Number>                relative corner in percent within superview
+
+	originRule              <Block>                 rule to compute origin if superview changes size
+
+	extentRule              <Block>                 rule to compute extent if superview changes size
+
+	cornerRule              <Block>                 rule to compute corner if superview changes size
+
+	insets                  <Array>                 array with top, left, bottom & right insets (or nil)
+
+	layout                  <LayoutObject>          not yet implemented - will replace the above layout
+							variables.
+
+	shown                   <Boolean>               true if visible (false if iconified, unmapped or covered)
+
+	unused_hiddenOnRealize  <Boolean>               don't show automatically when superview is realized.
+							now encoded in the flags.
+							(kept to keep the instVar size constant)
+
+	name                    <String>                my name (future use for resources)
+
+	level (**)              <Number>                3D level relative to superview
+
+	margin                  <Number>                convenient margin; that is the number of pixels
+							which are taken up by border plus 3D level
+							(i.e. borderWidth + level abs)
+
+	innerClipRect           <Rectangle>             convenient inner clip (minus margin)
+
+	shadowColor (**)        <Color>                 color used to draw 3D shadowed edges
+
+	lightColor (**)         <Color>                 color used to draw 3D lighted edges
+
+	bitGravity              <nil | Symbol>          gravity of contents (if device supports it)
+
+	viewGravity             <nil | Symbol>          gravity of view (if device supports it)
+
+	controller              <nil | Controller>      the controller (if any)
+
+	windowGroup             <WindowGroup>           the windowGroup
+
+	preferredExtent(*)      <nil | Point>           preferredExtent overWrite
+							if nonNil, the widget will not compute
+							its pref-extent, but use that value.
+
+	explicitExtent(*)       <nil | Point>           preferredExtent overWrite
+							if nonNil, the widget will not compute
+							its pref-extent, but use that value.
+
+	dependents              <nil | Collection>      who depends on me
+
+	layoutManager                                   currently unused; will be responsible for
+							child layout management
+
+	visibilityChannel                               valueHolder to control the visiblity
+
+	helpKey                                         for tooltips
+
+	dropTarget                                      for drag&drop
 
     (*) about to be changed to use preferredExtent as a cache and explicitExtent as
-        an overwrite value.
+	an overwrite value.
 
     (**) We have recently started to change the system to use borders instead of separate
-         borderWidth, borderColor, level, shadow- and lightColors.
-         Expect more changes here in the near future..
+	 borderWidth, borderColor, level, shadow- and lightColors.
+	 Expect more changes here in the near future..
 
     [Class variables:]
 
-        Grey                    <Color>                 the color grey - its used so often
-
-        ViewSpacing             <Number>                preferred spacing between views; 1mm
-
-        CentPoint               <Point>                 100 @ 100 - its used so often
-
-        StyleSheet              <ResourcePack>          contains all view-style specifics
-
-        ReturnFocusWhenClosingModalBoxes                if true, a closing modalBox returns
-                                <Boolean>               the keyboard focus to the view which was
-                                                        active when the box was opened.
-                                                        If false (the default), it is left to
-                                                        window manager to assign a new focus.
-                                                        If running on olwm/olvwm (which requires an
-                                                        explicit click to reassign a focus), it is
-                                                        better to turn this on in a private.rc file.
+	Grey                    <Color>                 the color grey - its used so often
+
+	ViewSpacing             <Number>                preferred spacing between views; 1mm
+
+	CentPoint               <Point>                 100 @ 100 - its used so often
+
+	StyleSheet              <ResourcePack>          contains all view-style specifics
+
+	ReturnFocusWhenClosingModalBoxes                if true, a closing modalBox returns
+				<Boolean>               the keyboard focus to the view which was
+							active when the box was opened.
+							If false (the default), it is left to
+							window manager to assign a new focus.
+							If running on olwm/olvwm (which requires an
+							explicit click to reassign a focus), it is
+							better to turn this on in a private.rc file.
 
     [styleSheet parameters:]
 
-        popupShadow             <Boolean>               if true, popupViews show a shadow below
-
-        popupLevel              <nil | Integer>         3D level
-
-        borderWidth             <nil | Integer>         borderWidth (ignored in 3D styles)
-
-        borderColor             <nil | Color>           borderColor (ignored in 3D styles)
-
-        viewBackground          <nil | Color>           views background
-
-        shadowColor             <nil | Color>           color for shadow edges (ignored in 2D styles)
-
-        lightColor              <nil | Color>           color for light edges (ignored in 2D styles)
-
-        font                    <nil | Font>            font to use
+	popupShadow             <Boolean>               if true, popupViews show a shadow below
+
+	popupLevel              <nil | Integer>         3D level
+
+	borderWidth             <nil | Integer>         borderWidth (ignored in 3D styles)
+
+	borderColor             <nil | Color>           borderColor (ignored in 3D styles)
+
+	viewBackground          <nil | Color>           views background
+
+	shadowColor             <nil | Color>           color for shadow edges (ignored in 2D styles)
+
+	lightColor              <nil | Color>           color for light edges (ignored in 2D styles)
+
+	font                    <nil | Font>            font to use
 
 
     TODO:
-        get rid of relativeOrigin, relativeCorner, originRule, extentRule,
-        and insets; replace by a single object which defines the size
-        (mhmh - ST-80 seems to call this LayoutFrame ?)
-        -> be prepared for a change here in the near future and ONLY use
-           access methods to get those instance variables' values
-
-        get rid of 3D level & margin, move it to extra wrappers
-        (although this will make view setup more complicated, it will remove
-         complexity from the internals of view. Also, it will allow for more
-         varieties of borders.)
-
-        add components (could also call them gadgets or lightweight views)
-        - views are expensive in terms of X resources. This would make all
-        framing/edge and panel helper views become cheap ST objects, instead
-        of views.
+	get rid of relativeOrigin, relativeCorner, originRule, extentRule,
+	and insets; replace by a single object which defines the size
+	(mhmh - ST-80 seems to call this LayoutFrame ?)
+	-> be prepared for a change here in the near future and ONLY use
+	   access methods to get those instance variables' values
+
+	get rid of 3D level & margin, move it to extra wrappers
+	(although this will make view setup more complicated, it will remove
+	 complexity from the internals of view. Also, it will allow for more
+	 varieties of borders.)
+
+	add components (could also call them gadgets or lightweight views)
+	- views are expensive in terms of X resources. This would make all
+	framing/edge and panel helper views become cheap ST objects, instead
+	of views.
 
 
     [see also:]
-        StandardSystemView DialogBox
-        WindowGroup WindowEvent
-        Layout
-        ( introduction to view programming :html: programming/viewintro.html )
+	StandardSystemView DialogBox
+	WindowGroup WindowEvent
+	Layout
+	( introduction to view programming :html: programming/viewintro.html )
 
     [author:]
-        Claus Gittinger
+	Claus Gittinger
 "
 !
 
@@ -276,50 +279,50 @@
      to make the individual subviews visible)
 
     a subView in a topView:
-                                                                        [exBegin]
-        |top v|
-
-        top := StandardSystemView new.
-        v := View new.
-        v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
-        top addSubView:v.
-        top open
-                                                                        [exEnd]
+									[exBegin]
+	|top v|
+
+	top := StandardSystemView new.
+	v := View new.
+	v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
+	top addSubView:v.
+	top open
+									[exEnd]
 
 
     the same, a bit more compact:
-                                                                        [exBegin]
-        |top v|
-
-        top := StandardSystemView new.
-        v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
-        top open
-                                                                        [exEnd]
+									[exBegin]
+	|top v|
+
+	top := StandardSystemView new.
+	v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
+	top open
+									[exEnd]
 
 
     fixed position/size:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
        top extent:300@300.
 
        v1 := View origin:10@10
-                  corner:50@50
-                      in:top.
+		  corner:50@50
+		      in:top.
        v2 := View origin:60@10
-                  corner:150@100
-                      in:top.
+		  corner:150@100
+		      in:top.
 
        v1 viewBackground:(Color red).
        v2 viewBackground:(Color yellow).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     same, using ST-80 way of bulding up view hierarchies
     (recommended, if you plan to port applications later)
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -341,10 +344,10 @@
        v2 viewBackground:(Color yellow).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     fixed origin, variable size:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -363,11 +366,11 @@
        top add:v2.
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     fixed origin, variable size,
     bottomInset for constant distance from bottom:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -388,10 +391,10 @@
        top add:v2.
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     variable origin, variable size,
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -410,11 +413,11 @@
        top add:v2.
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     variable origin, variable size,
     insets for some constant distance
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -435,11 +438,11 @@
        top add:v2.
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     using layout objects (ST-80 style):
     fully specifying the frame
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -452,21 +455,21 @@
        v2 viewBackground:(Color yellow).
 
        top add:v1 in:(LayoutFrame new
-                        leftFraction:0.25;
-                        rightFraction:0.75;
-                        topFraction:0.0;
-                        bottomFraction:0.5).
+			leftFraction:0.25;
+			rightFraction:0.75;
+			topFraction:0.0;
+			bottomFraction:0.5).
        top add:v2 in:(LayoutFrame new
-                        leftFraction:0.5;
-                        rightFraction:1.0;
-                        topFraction:0.5;
-                        bottomFraction:0.75).
+			leftFraction:0.5;
+			rightFraction:1.0;
+			topFraction:0.5;
+			bottomFraction:0.75).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     another one, with offsets:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -479,22 +482,22 @@
        v2 viewBackground:(Color yellow).
 
        top add:v1 in:(LayoutFrame new
-                        leftFraction:0.0 offset:10;
-                        rightFraction:1.0 offset:-10;
-                        topFraction:0.0 offset:10;
-                        bottomFraction:0.5).
+			leftFraction:0.0 offset:10;
+			rightFraction:1.0 offset:-10;
+			topFraction:0.0 offset:10;
+			bottomFraction:0.5).
        top add:v2 in:(LayoutFrame new
-                        leftFraction:0.0 offset:30;
-                        rightFraction:1.0 offset:-30;
-                        topFraction:0.5 offset:10;
-                        bottomFraction:0.75).
+			leftFraction:0.0 offset:30;
+			rightFraction:1.0 offset:-30;
+			topFraction:0.5 offset:10;
+			bottomFraction:0.75).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     specifying origin only. Extent is views preferred
     (notice, that plain views have some defaultExtent of 100@100)
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -507,17 +510,17 @@
        v2 viewBackground:(Color yellow).
 
        top add:v1 in:(LayoutOrigin new
-                        leftFraction:0.25;
-                        topFraction:0.0).
+			leftFraction:0.25;
+			topFraction:0.0).
        top add:v2 in:(LayoutOrigin new
-                        leftFraction:0.5;
-                        topFraction:0.5).
+			leftFraction:0.5;
+			topFraction:0.5).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     same example, using buttons which compute their preferredBounds:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -530,17 +533,17 @@
        v2 backgroundColor:(Color yellow).
 
        top add:v1 in:(LayoutOrigin new
-                        leftFraction:0.25;
-                        topFraction:0.0).
+			leftFraction:0.25;
+			topFraction:0.0).
        top add:v2 in:(LayoutOrigin new
-                        leftFraction:0.5;
-                        topFraction:0.5).
+			leftFraction:0.5;
+			topFraction:0.5).
 
        top open
-                                                                        [exEnd]
+									[exEnd]
 
     border:
-                                                                        [exBegin]
+									[exBegin]
        |top v1 v2|
 
        top := StandardSystemView new.
@@ -554,7 +557,7 @@
        v1 border:(SimpleBorder width:1 color:Color red).
        v2 border:(SimpleBorder width:1 color:Color blue).
        top open
-                                                                        [exEnd]
+									[exEnd]
 "
 !
 
@@ -563,40 +566,40 @@
     Currently, these are experimental and work under Windows only
 
     an MDI child:
-                                                                        [exBegin]
-        |top v1 v2|
-
-        top := StandardSystemView new.
-        top extent:450 @ 300.
-        top name:'MDI Client'.
-        top beMDIClientView.
-        top open.
-
-        v1 := View new.
-        v1 viewBackground:Color red.
-        v1 origin:50 @ 50 corner:150 @ 100.
-        v1 beMDIChildView.
-        top addSubView:v1.
-
-        v2 := View new.
-        v2 viewBackground:Color green.
-        v2 origin:50 @ 50 corner:150 @ 100.
-        v2 beMDIChildView.
-        top addSubView:v2.
-                                                                        [exEnd]
+									[exBegin]
+	|top v1 v2|
+
+	top := StandardSystemView new.
+	top extent:450 @ 300.
+	top name:'MDI Client'.
+	top beMDIClientView.
+	top open.
+
+	v1 := View new.
+	v1 viewBackground:Color red.
+	v1 origin:50 @ 50 corner:150 @ 100.
+	v1 beMDIChildView.
+	top addSubView:v1.
+
+	v2 := View new.
+	v2 viewBackground:Color green.
+	v2 origin:50 @ 50 corner:150 @ 100.
+	v2 beMDIChildView.
+	top addSubView:v2.
+									[exEnd]
 "
 !
 
 layoutComputation
 "
     Due to historic reasons, there are 2 mechanisms to resize a view:
-        - (old, to be eliminated mechanism)
-            based upon info found in
-                relativeOrigin / relativeCorner / relativeExtent
-                originRule / cornerRule / extentRule
-
-        - (new, will migrate to that one)
-            letting a layoutObject compute things
+	- (old, to be eliminated mechanism)
+	    based upon info found in
+		relativeOrigin / relativeCorner / relativeExtent
+		originRule / cornerRule / extentRule
+
+	- (new, will migrate to that one)
+	    letting a layoutObject compute things
 
     Actually, the old mechanism is just as powerful, as the new (layoutObject
     based) mechanism; with the help of block=rules, you can compute whatever
@@ -613,13 +616,13 @@
 
     Notice, that a view recomputes its size whenever its superview
     changes size. This is done via:
-        sizeChanged
-            -> allSubviews: superViewChangedSize
+	sizeChanged
+	    -> allSubviews: superViewChangedSize
 
     If the geometry computation as performed in superViewChangedSize
     is not powerful enough for your application, you can either:
-        - redefine superViewChangedSize
-        - create a special layoutObject which computes a new layout.
+	- redefine superViewChangedSize
+	- create a special layoutObject which computes a new layout.
 "
 !
 
@@ -628,11 +631,11 @@
     Due to historic reasons, there are multiple mechanisms for popupMenu
     definition:
 
-        - static menus
-
-        - dynamic menus from the view
-
-        - dynamic menus from the model / menuHolder
+	- static menus
+
+	- dynamic menus from the view
+
+	- dynamic menus from the model / menuHolder
 
 
     static menus
@@ -643,35 +646,35 @@
     It can be defined at initialization time or redefined any time later.
     The menu is defined with:
 
-        someView middleButtonMenu:<aPopUpMenu>
+	someView middleButtonMenu:<aPopUpMenu>
 
     Compatibility note:
-        static menus should no longer be used - their operation
-        is incompatible with ST-80 and ST/X's dynamic menus.
-        Do not use them if you care for compatibility.
+	static menus should no longer be used - their operation
+	is incompatible with ST-80 and ST/X's dynamic menus.
+	Do not use them if you care for compatibility.
     Also, they do not care for any menuPerformers or menuHolders.
     (instead, they use a receiver instance variable, which gets the messages).
 
     example:
-        |top v1 v2|
-
-        top := StandardSystemView new.
-        top extent:300@300.
-
-        v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
-        v1 viewBackground:Color red.
-
-        v2 := View origin:0.5@0.0 corner:1.0@1.0 in:top.
-        v2 viewBackground:Color yellow.
-
-        v1 middleButtonMenu:(
-                                PopUpMenu
-                                   labels:#('foo' 'bar')
-                                   selectors:#(foo bar)
-                                   receiver:v1
-                            ).
-
-        top open.
+	|top v1 v2|
+
+	top := StandardSystemView new.
+	top extent:300@300.
+
+	v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
+	v1 viewBackground:Color red.
+
+	v2 := View origin:0.5@0.0 corner:1.0@1.0 in:top.
+	v2 viewBackground:Color yellow.
+
+	v1 middleButtonMenu:(
+				PopUpMenu
+				   labels:#('foo' 'bar')
+				   selectors:#(foo bar)
+				   receiver:v1
+			    ).
+
+	top open.
 
 
 
@@ -697,42 +700,42 @@
     to the view IFF the model would not respond to the menu message.
     (this allows mixing of menu messages for the view AND the model).
 
-        |top v1 v2 holder|
-
-        holder := Plug new.
-        holder respondTo:#menu1
-                    with:[
-                            v1 menuMessage:#otherMenu1.
-                            PopUpMenu
-                                labels:#('foo' 'bar')
-                                selectors:#(foo bar).
-                         ].
-        holder respondTo:#otherMenu1
-                    with:[
-                            v1 menuMessage:#menu1.
-                            PopUpMenu
-                                labels:#('other foo' 'other bar')
-                                selectors:#(foo bar).
-                         ].
-        holder respondTo:#menu2
-                    with:[  PopUpMenu
-                                labels:#('copy' 'bar2')
-                                selectors:#(copySelection bar2)
-                         ].
-
-        top := StandardSystemView new.
-        top extent:300@300.
-
-        v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
-        v1 viewBackground:Color red.
-
-        v2 := TextView origin:0.5@0.0 corner:1.0@1.0 in:top.
-        v2 contents:'pop me up'.
-
-        v1 model:holder; menuMessage:#menu1.
-        v2 menuHolder:holder; menuMessage:#menu2.
-
-        top open.
+	|top v1 v2 holder|
+
+	holder := Plug new.
+	holder respondTo:#menu1
+		    with:[
+			    v1 menuMessage:#otherMenu1.
+			    PopUpMenu
+				labels:#('foo' 'bar')
+				selectors:#(foo bar).
+			 ].
+	holder respondTo:#otherMenu1
+		    with:[
+			    v1 menuMessage:#menu1.
+			    PopUpMenu
+				labels:#('other foo' 'other bar')
+				selectors:#(foo bar).
+			 ].
+	holder respondTo:#menu2
+		    with:[  PopUpMenu
+				labels:#('copy' 'bar2')
+				selectors:#(copySelection bar2)
+			 ].
+
+	top := StandardSystemView new.
+	top extent:300@300.
+
+	v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
+	v1 viewBackground:Color red.
+
+	v2 := TextView origin:0.5@0.0 corner:1.0@1.0 in:top.
+	v2 contents:'pop me up'.
+
+	v1 model:holder; menuMessage:#menu1.
+	v2 menuHolder:holder; menuMessage:#menu2.
+
+	top open.
 
     an additional goody is the possibility, to change the menuPerformer (textViews only).
     If defined, that one will get the menus message (instead of the model/view).
@@ -745,31 +748,31 @@
      - it could be forwarded to the view, though.
      This could be useful to intercept/filter things).
 
-        |top v menuProvider menuExecutor |
-
-        menuProvider := Plug new.
-        menuProvider respondTo:#menu
-                    with:[  PopUpMenu
-                                labels:#('copy' 'foo')
-                                selectors:#(copySelection foo)
-                         ].
-
-        menuExecutor := Plug new.
-        menuExecutor respondTo:#copySelection
-                           with:[Transcript showCR:'copy function'].
-        menuExecutor respondTo:#foo
-                           with:[Transcript showCR:'foo function'].
-
-        top := StandardSystemView new.
-        top extent:300@300.
-
-        v := TextView origin:0.0@0.0 corner:1.0@1.0 in:top.
-        v contents:'pop me up'.
-
-        v menuHolder:menuProvider; menuMessage:#menu.
-        v menuPerformer:menuExecutor.
-
-        top open.
+	|top v menuProvider menuExecutor |
+
+	menuProvider := Plug new.
+	menuProvider respondTo:#menu
+		    with:[  PopUpMenu
+				labels:#('copy' 'foo')
+				selectors:#(copySelection foo)
+			 ].
+
+	menuExecutor := Plug new.
+	menuExecutor respondTo:#copySelection
+			   with:[Transcript showCR:'copy function'].
+	menuExecutor respondTo:#foo
+			   with:[Transcript showCR:'foo function'].
+
+	top := StandardSystemView new.
+	top extent:300@300.
+
+	v := TextView origin:0.0@0.0 corner:1.0@1.0 in:top.
+	v contents:'pop me up'.
+
+	v menuHolder:menuProvider; menuMessage:#menu.
+	v menuPerformer:menuExecutor.
+
+	top open.
 "
 ! !
 
@@ -777,12 +780,12 @@
 
 initialize
     DefaultStyle isNil ifTrue:[
-        Font initialize.
-        Form initialize.
-        Color initialize.
+	Font initialize.
+	Form initialize.
+	Color initialize.
     ].
     self == SimpleView ifTrue:[
-        Smalltalk addDependent:self   "/ to get language changes
+	Smalltalk addDependent:self   "/ to get language changes
     ].
 
     ReturnFocusWhenClosingModalBoxes := true. "/ false.
@@ -809,7 +812,7 @@
 
 postAutoload
     (Screen notNil and:[Screen current notNil]) ifTrue:[
-        self updateStyleCache.
+	self updateStyleCache.
     ]
 ! !
 
@@ -845,14 +848,14 @@
 
     newView := self basicNew.
     aView notNil ifTrue:[
-        viewsDevice := aView graphicsDevice.
+	viewsDevice := aView graphicsDevice.
 "/      newView container:aView.
     ] ifFalse:[
-        viewsDevice := Screen current
+	viewsDevice := Screen current
     ].
     newView initializeForDevice:viewsDevice.
     (viewsDevice supportsNativeWidgetType:newView nativeWindowType) ifTrue:[
-        newView beNativeWidget
+	newView beNativeWidget
     ].
     aView notNil ifTrue:[aView addSubView:newView].
     ^ newView
@@ -901,9 +904,9 @@
     |viewsDevice|
 
     anotherView notNil ifTrue:[
-        viewsDevice := anotherView graphicsDevice.
+	viewsDevice := anotherView graphicsDevice.
     ] ifFalse:[
-        viewsDevice := Screen current.
+	viewsDevice := Screen current.
     ].
     ^ self onDevice:viewsDevice
 
@@ -996,8 +999,8 @@
 !
 
 origin:anOrigin extent:anExtent
-                label:aLabel icon:aForm
-                minExtent:minExtent maxExtent:maxExtent
+		label:aLabel icon:aForm
+		minExtent:minExtent maxExtent:maxExtent
     |newView|
 
     newView := self new. "/ onDevice:Screen current.
@@ -1038,11 +1041,11 @@
 
 update:something with:aParameter from:changedObject
     changedObject == Smalltalk ifTrue:[
-        (something == #Language or:[something == #LanguageTerritory]) ifTrue:[
-            "flush resources on language changes"
-            self flushAllClassResources.
-            self allSubInstancesDo:[:eachView | eachView languageChanged].
-        ].
+	(something == #Language or:[something == #LanguageTerritory]) ifTrue:[
+	    "flush resources on language changes"
+	    self flushAllClassResources.
+	    self allSubInstancesDo:[:eachView | eachView languageChanged].
+	].
     ]
 
     "Created: 15.6.1996 / 15:23:04 / cg"
@@ -1080,17 +1083,17 @@
     DefaultFont notNil ifTrue:[^ DefaultFont].
 
     self == SimpleView ifTrue:[
-        f := super defaultFont
+	f := super defaultFont
     ] ifFalse:[
-        f := self superclass defaultFont.
+	f := self superclass defaultFont.
     ].
 
     f notNil ifTrue:[
-        DefaultFont := f.
-        f := f onDevice:Screen current.
-        f notNil ifTrue:[
-            DefaultFont := f.
-        ]
+	DefaultFont := f.
+	f := f onDevice:Screen current.
+	f notNil ifTrue:[
+	    DefaultFont := f.
+	]
     ].
     ^ DefaultFont
 
@@ -1104,12 +1107,12 @@
 
     DefaultFont := aFont.
     aFont notNil ifTrue:[
-        Display notNil ifTrue:[
-            f := aFont onDevice:(Screen current).
-            f notNil ifTrue:[
-                DefaultFont := f.
-            ]
-        ]
+	Display notNil ifTrue:[
+	    f := aFont onDevice:(Screen current).
+	    f notNil ifTrue:[
+		DefaultFont := f.
+	    ]
+	]
     ]
 
     "Modified: 18.3.1996 / 12:56:20 / cg"
@@ -1131,7 +1134,7 @@
     DefaultStyle := aStyle.
 
     MIMETypeIconLibrary notNil ifTrue:[
-        MIMETypeIconLibrary flushIcons
+	MIMETypeIconLibrary flushIcons
     ].
 
     "/ no need to read the stylesheet always here
@@ -1143,9 +1146,9 @@
     "/ no need to read the stylesheet, then.
     "/ used to be unconditional, before.
     StyleSheet notNil ifTrue:[
-        (Screen notNil and:[Screen current notNil]) ifTrue:[
-            self readStyleSheetAndUpdateAllStyleCaches.
-        ].
+	(Screen notNil and:[Screen current notNil]) ifTrue:[
+	    self readStyleSheetAndUpdateAllStyleCaches.
+	].
     ].
 
     "
@@ -1177,20 +1180,20 @@
     |iconLibraryClass |
 
     DefaultStyle isNil ifTrue:[
-        self setDefaultStyle
+	self setDefaultStyle
     ].
 
     StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
     StyleSheet fileReadFailed ifTrue:[
-        ('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
-        DefaultStyle ~~ #normal ifTrue:[
-            DefaultStyle := #normal.
-            StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
-
-            StyleSheet fileReadFailed ifTrue:[
-                'SimpleView [warning]: not even a styleSheet for normal-style (using ugly defaults).' errorPrintCR.
-            ]
-        ]
+	('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
+	DefaultStyle ~~ #normal ifTrue:[
+	    DefaultStyle := #normal.
+	    StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
+
+	    StyleSheet fileReadFailed ifTrue:[
+		'SimpleView [warning]: not even a styleSheet for normal-style (using ugly defaults).' errorPrintCR.
+	    ]
+	]
     ].
 
     iconLibraryClass := StyleSheet at:#ToolbarIconLibrary.
@@ -1204,8 +1207,8 @@
      Needed after a style change or when a style file has been changed"
 
     DefaultStyle notNil ifTrue:[
-        self readStyleSheet.
-        self updateAllStyleCaches.
+	self readStyleSheet.
+	self updateAllStyleCaches.
     ].
 
     "Created: / 15.9.1998 / 22:03:59 / cg"
@@ -1246,28 +1249,28 @@
     |defStyle|
 
     true "DefaultStyle isNil" ifTrue:[
-        defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
-        defStyle notNil ifTrue:[
-            DefaultStyle := defStyle asSymbol.
-        ] ifFalse:[
-            "/ use XP for both linux and older windows systems;
-            DefaultStyle := ViewStyle msWindowsXP.
-
-            OperatingSystem isMSWINDOWSlike ifTrue:[
-                "/ use Vista for vista and newer systems;
-                OperatingSystem isVistaLike ifTrue:[
-                    DefaultStyle := ViewStyle msWindowsVista.
-                    OperatingSystem isWin8Like ifTrue:[
-                        "/ use win8 for 8 and newer systems;
-                        DefaultStyle := ViewStyle msWindows8
-                    ].
-                ].
-            ] ifFalse:[
-                OperatingSystem isOSXlike ifTrue:[
-                    DefaultStyle := #macosx
-                ].
-            ].
-        ].
+	defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
+	defStyle notNil ifTrue:[
+	    DefaultStyle := defStyle asSymbol.
+	] ifFalse:[
+	    "/ use XP for both linux and older windows systems;
+	    DefaultStyle := ViewStyle msWindowsXP.
+
+	    OperatingSystem isMSWINDOWSlike ifTrue:[
+		"/ use Vista for vista and newer systems;
+		OperatingSystem isVistaLike ifTrue:[
+		    DefaultStyle := ViewStyle msWindowsVista.
+		    OperatingSystem isWin8Like ifTrue:[
+			"/ use win8 for 8 and newer systems;
+			DefaultStyle := ViewStyle msWindows8
+		    ].
+		].
+	    ] ifFalse:[
+		OperatingSystem isOSXlike ifTrue:[
+		    DefaultStyle := #macosx
+		].
+	    ].
+	].
     ].
 
     "Modified: / 03-02-2011 / 21:41:35 / cg"
@@ -1277,7 +1280,7 @@
     "return the view style sheet information (a dictionary)"
 
     StyleSheet isNil ifTrue:[
-        self updateAllStyleCaches.
+	self updateAllStyleCaches.
     ].
     ^ StyleSheet
 
@@ -1309,33 +1312,33 @@
     self changed:#style.
     SimpleView updateStyleCache.
     SimpleView allSubclassesDo:[:aClass |
-        "JV@2010-12-02: Removed to avoid lost of preferred fonts on image restart"
-        "/ cg: no, this is required!!!!!!
-        "/ otherwise, we get ugly courier fonts on windows
-        "/ updateStyleCache MUST clear any previously
-        "/ cached font values, otherwise you cannot load a style's font.
-        "/ if you want to keep your fonts, do it elsewhere (keep some userFontPrefs and restore from there)
-
-        "/ JV: Font preferences ARE already saved in user's setting.rc/setting.stx, but they
-        "/     are not reloaded on snapshot restart (which is correct, I think).
-        "/     This just discard such fonts. I would say calling this upon snapshot restart
-        "/     is a bad idea. Workaround it only for me is not a solution as all other
-        "/     Linux users are ... off. Let's workaround it:
-        (Smalltalk isInitialized not and:
-            [OperatingSystem getOSType == #linux and:
-                [UserPreferences current linuxFontWorkaround]])
-                    ifFalse:[
-                        aClass defaultFont:nil.
-                    ].
-
-        (aClass class includesSelector:#updateStyleCache) ifTrue:[
-            aClass updateStyleCache
-        ].
+	"JV@2010-12-02: Removed to avoid lost of preferred fonts on image restart"
+	"/ cg: no, this is required!!!!!!
+	"/ otherwise, we get ugly courier fonts on windows
+	"/ updateStyleCache MUST clear any previously
+	"/ cached font values, otherwise you cannot load a style's font.
+	"/ if you want to keep your fonts, do it elsewhere (keep some userFontPrefs and restore from there)
+
+	"/ JV: Font preferences ARE already saved in user's setting.rc/setting.stx, but they
+	"/     are not reloaded on snapshot restart (which is correct, I think).
+	"/     This just discard such fonts. I would say calling this upon snapshot restart
+	"/     is a bad idea. Workaround it only for me is not a solution as all other
+	"/     Linux users are ... off. Let's workaround it:
+	(Smalltalk isInitialized not and:
+	    [OperatingSystem getOSType == #linux and:
+		[UserPreferences current linuxFontWorkaround]])
+		    ifFalse:[
+			aClass defaultFont:nil.
+		    ].
+
+	(aClass class includesSelector:#updateStyleCache) ifTrue:[
+	    aClass updateStyleCache
+	].
     ].
 
     "/ use #at: to avoid introducing a depency to libview2
     (Smalltalk at:#MIMETypeIconLibrary) notNil ifTrue:[
-        (Smalltalk at:#MIMETypeIconLibrary) flushIcons
+	(Smalltalk at:#MIMETypeIconLibrary) flushIcons
     ].
 
 
@@ -1357,8 +1360,8 @@
      anyway."
 
     <resource: #style (#viewSpacing #font #borderWidth #borderColor
-                       #viewBackground #shadowColor #lightColor
-                       #focusColor #focusBorderWidth)>
+		       #viewBackground #shadowColor #lightColor
+		       #focusColor #focusBorderWidth)>
 
     |styleSheet bgGrey currentScreen|
 
@@ -1369,67 +1372,67 @@
      and keep the values in fast class variables
     "
     styleSheet isNil ifTrue:[
-        self setDefaultStyle.
-        self readStyleSheet.
-        styleSheet := StyleSheet.
+	self setDefaultStyle.
+	self readStyleSheet.
+	styleSheet := StyleSheet.
     ].
 
     currentScreen := Screen current ? Screen default.
 
     Grey := styleSheet viewGrey.
     Grey isNil ifTrue:[
-        Grey := Color gray
+	Grey := Color gray
     ].
     Grey := Grey onDevice:currentScreen.
 
     styleSheet fileReadFailed ifTrue:[
-        bgGrey := Color white
+	bgGrey := Color white
     ] ifFalse:[
-        currentScreen hasGrayscales ifTrue:[
-            bgGrey := Grey
-        ] ifFalse:[
-            bgGrey := Color white.
-        ]
+	currentScreen hasGrayscales ifTrue:[
+	    bgGrey := Grey
+	] ifFalse:[
+	    bgGrey := Color white.
+	]
     ].
     bgGrey := bgGrey onDevice:currentScreen.
 
     ViewSpacing := styleSheet at:#viewSpacing.
     ViewSpacing isNil ifTrue:[
-        ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
+	ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
     ].
 
     DefaultBorderColor := styleSheet colorAt:#borderColor.
     DefaultBorderColor isNil ifTrue:[
-        DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
+	DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
     ].
 
     styleSheet fileReadFailed ifTrue:[
-        DefaultBorderWidth := 1.
-        DefaultFocusColor := DefaultShadowColor := Color black.
-        DefaultViewBackgroundColor := DefaultLightColor :=  Color white.
-        DefaultFocusBorderWidth := 1.
+	DefaultBorderWidth := 1.
+	DefaultFocusColor := DefaultShadowColor := Color black.
+	DefaultViewBackgroundColor := DefaultLightColor :=  Color white.
+	DefaultFocusBorderWidth := 1.
     ] ifFalse:[
-        DefaultBorderWidth := styleSheet at:#borderWidth default:0.
-        DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
-        DefaultShadowColor := styleSheet colorAt:#shadowColor.
-        DefaultLightColor := styleSheet colorAt:#lightColor.
-        DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
-        DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
+	DefaultBorderWidth := styleSheet at:#borderWidth default:0.
+	DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
+	DefaultShadowColor := styleSheet colorAt:#shadowColor.
+	DefaultLightColor := styleSheet colorAt:#lightColor.
+	DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
+	DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
     ].
 
     self == SimpleView ifTrue:[
-        DefaultFont := styleSheet at:#font.
-        DefaultFont isNil ifTrue:[
-            DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
-        ].
-        DefaultFont := DefaultFont onDevice:currentScreen.
+	DefaultFont := styleSheet at:#font.
+	DefaultFont isNil ifTrue:[
+	    DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
+	].
+	DefaultFont := DefaultFont onDevice:currentScreen.
     ] ifFalse:[
-        DefaultFont := nil
+	DefaultFont := nil
     ].
 
     DefaultViewBackgroundColor isNil ifTrue:[
-        'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
-        DefaultViewBackgroundColor := Color white
+	'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
+	DefaultViewBackgroundColor := Color white
     ].
 
     "Modified: / 29-04-1997 / 11:16:52 / dq"
@@ -1451,7 +1454,7 @@
     "if not already loaded, get the classes resourcePack and return it"
 
     ClassResources isNil ifTrue:[
-        ClassResources := super classResources.
+	ClassResources := super classResources.
     ].
     ^ ClassResources
 !
@@ -1468,20 +1471,20 @@
 
     ResourcePack flushCachedResourcePacks.
     SimpleView withAllSubclassesDo:[:aClass |
-        aClass flushClassResources.
+	aClass flushClassResources.
     ]
 
     "
      View flushAllClassResources
     "
     "to change the language:
-        Language := #en.
-        Smalltalk changed:#Language.
-        View flushAllClassResources
+	Language := #en.
+	Smalltalk changed:#Language.
+	View flushAllClassResources
      or:
-        Language := #de.
-        Smalltalk changed:#Language.
-        View flushAllClassResources
+	Language := #de.
+	Smalltalk changed:#Language.
+	View flushAllClassResources
     "
 !
 
@@ -1528,10 +1531,10 @@
     |newDevice|
 
     [
-        newDevice := XWorkstation newDispatchingFor:aScreenName.
+	newDevice := XWorkstation newDispatchingFor:aScreenName.
     ] on:Screen deviceOpenErrorSignal do:[:ex|
-        self warn:'Could not open display: ' , aScreenName.
-        ^ self
+	self warn:'Could not open display: ' , aScreenName.
+	^ self
     ].
     ^ (self onDevice:newDevice) open.
 
@@ -1568,7 +1571,7 @@
     "/ what a kludge - Dolphin and Squeak mean: printOn:;
     "/ ST/X (and some old ST80's) mean: draw-yourself on.
     (aGCOrStream isStream) ifTrue:[
-        ^ super displayOn:aGCOrStream
+	^ super displayOn:aGCOrStream
     ].
     self redraw
 
@@ -1678,25 +1681,25 @@
     isApplicationModel := true.
 
     (builder := aBuilder) isNil ifTrue:[
-        "/ problem: anApplication could have no builder
-        "/          or anApplication could be a non-appModel (theoretically - only providing a spec)
-        builder := anApplication perform:#builder ifNotUnderstood:[isApplicationModel := false. nil].
-        builder isNil ifTrue:[
-            isApplicationModel ifTrue:[
-                anApplication createBuilder.
-                builder := anApplication builder
-            ] ifFalse:[
-                builder := UIBuilder new.
-            ]
-        ]
+	"/ problem: anApplication could have no builder
+	"/          or anApplication could be a non-appModel (theoretically - only providing a spec)
+	builder := anApplication perform:#builder ifNotUnderstood:[isApplicationModel := false. nil].
+	builder isNil ifTrue:[
+	    isApplicationModel ifTrue:[
+		anApplication createBuilder.
+		builder := anApplication builder
+	    ] ifFalse:[
+		builder := UIBuilder new.
+	    ]
+	]
     ].
 
     (subSpec := aWindowSpecOrSpecSymbol) isSymbol ifTrue:[
-        anApplication isNil ifTrue:[^ self].
-        subSpec := anApplication interfaceSpecFor:aWindowSpecOrSpecSymbol.
-        subSpec isNil ifTrue:[
-            ^ self
-        ].
+	anApplication isNil ifTrue:[^ self].
+	subSpec := anApplication interfaceSpecFor:aWindowSpecOrSpecSymbol.
+	subSpec isNil ifTrue:[
+	    ^ self
+	].
     ].
 
     "/ if the appl is not the master, but the masters builder is used,
@@ -1704,35 +1707,35 @@
 
     masterApp := anApplication perform:#masterApplication ifNotUnderstood:[isApplicationModel := false. nil].
     masterApp isNil ifTrue:[
-        isApplicationModel := false.
+	isApplicationModel := false.
     ].
     thisApp := builder application.
     (isApplicationModel and:[anApplication ~~ thisApp]) ifTrue:[
-        masterApp ~~ thisApp ifTrue:[
-            self error:'should not happen' mayProceed:true.
-            masterApp isNil ifTrue:[
-                anApplication masterApplication:thisApp.
-            ].
-        ].
-
-        builder application:anApplication.
-        savedView := builder window.
-        builder window:self.
-        [
-            anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
-        ] ensure:[
-            builder window:savedView.
-            builder application:thisApp.
-        ].
+	masterApp ~~ thisApp ifTrue:[
+	    self error:'should not happen' mayProceed:true.
+	    masterApp isNil ifTrue:[
+		anApplication masterApplication:thisApp.
+	    ].
+	].
+
+	builder application:anApplication.
+	savedView := builder window.
+	builder window:self.
+	[
+	    anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
+	] ensure:[
+	    builder window:savedView.
+	    builder application:thisApp.
+	].
     ] ifFalse:[
-        thisIsANewBuild := builder window isNil.
-        thisIsANewBuild ifTrue:[
-            builder window:self.
-            anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
-        ] ifFalse:[
-            "/ WARNING: in case of rebuilding, we do NOT invoke pre- and postBuilds
-            builder buildFromSpec:subSpec in:self.
-        ]
+	thisIsANewBuild := builder window isNil.
+	thisIsANewBuild ifTrue:[
+	    builder window:self.
+	    anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
+	] ifFalse:[
+	    "/ WARNING: in case of rebuilding, we do NOT invoke pre- and postBuilds
+	    builder buildFromSpec:subSpec in:self.
+	]
     ].
 
 "/    postBuildWith: will be called twice if code below is enabled
@@ -1860,9 +1863,9 @@
      recursively in all of my subviews"
 
     subViews notNil ifTrue:[
-        subViews do:[:v|
-            v allViewBackground:something if:condition
-        ]
+	subViews do:[:v|
+	    v allViewBackground:something if:condition
+	]
     ]
 
     "Modified: / 18.7.1996 / 13:34:26 / cg"
@@ -1874,9 +1877,9 @@
      recursively in all of my subviews"
 
     subViews notNil ifTrue:[
-        subViews do:[:v|
-            v allViewForeground:something
-        ]
+	subViews do:[:v|
+	    v allViewForeground:something
+	]
     ]
 !
 
@@ -1921,7 +1924,7 @@
 
     self viewBackground:aColor.
     shown ifTrue:[
-        self clear; invalidate.
+	self clear; invalidate.
     ].
 
     "Created: 3.5.1997 / 10:26:49 / cg"
@@ -1932,7 +1935,7 @@
     "return my border"
 
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView border
+	^ superView border
     ].
 
     ^ border
@@ -1947,11 +1950,11 @@
     border := aBorder.
     self computeMargin.
     realized ifTrue:[
-        m := prevMargin max:margin.
-        self invalidate:(0@0 corner:width@m).               "/ top margin
-        self invalidate:((width-m)@m corner:width@height).  "/ right margin
-        self invalidate:(0@(height-m) corner:width@height). "/ bottom margin
-        self invalidate:(0@m corner:m@(height-m)).          "/ left margin
+	m := prevMargin max:margin.
+	self invalidate:(0@0 corner:width@m).               "/ top margin
+	self invalidate:((width-m)@m corner:width@height).  "/ right margin
+	self invalidate:(0@(height-m) corner:width@height). "/ bottom margin
+	self invalidate:(0@m corner:m@(height-m)).          "/ left margin
     ].
 !
 
@@ -1961,15 +1964,15 @@
     |clr|
 
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView borderColor
+	^ superView borderColor
     ].
 
     "/ ^ borderColor
     border notNil ifTrue:[
-        clr := border color
+	clr := border color
     ].
     clr isNil ifTrue:[
-        ^ self blackColor
+	^ self blackColor
     ].
     ^ clr.
 
@@ -1982,16 +1985,16 @@
     "/ backward compatibility
     "/ superView will be renamed to container soon.
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        superView borderColor:aColor.
-        ^ self
+	superView borderColor:aColor.
+	^ self
     ].
 
     aColor isNil ifTrue:[
-        border isNil ifTrue:[^ self].
-        self border:nil.
+	border isNil ifTrue:[^ self].
+	self border:nil.
     ] ifFalse:[
-        aColor = (self borderColor) ifTrue:[^ self].
-        self border:(SimpleBorder new width:(self borderWidth) color:aColor)
+	aColor = (self borderColor) ifTrue:[^ self].
+	self border:(SimpleBorder new width:(self borderWidth) color:aColor)
     ].
     self invalidate.
 
@@ -2010,18 +2013,18 @@
     "set the borderShape to aForm"
 
     aForm isNil ifTrue:[
-        viewShape := nil.
-        self drawableId notNil ifTrue:[
-            device setWindowBorderShape:nil in:self drawableId
-        ]
+	viewShape := nil.
+	self drawableId notNil ifTrue:[
+	    device setWindowBorderShape:nil in:self drawableId
+	]
     ] ifFalse:[
-        viewShape isNil ifTrue:[
-            viewShape := ArbitraryViewShape new
-        ].
-        viewShape borderShapeForm:aForm.
-        self drawableId notNil ifTrue:[
-            device setWindowBorderShape:(aForm id) in:self drawableId
-        ]
+	viewShape isNil ifTrue:[
+	    viewShape := ArbitraryViewShape new
+	].
+	viewShape borderShapeForm:aForm.
+	self drawableId notNil ifTrue:[
+	    device setWindowBorderShape:(aForm id) in:self drawableId
+	]
     ]
 
     "Modified: 18.9.1997 / 11:09:40 / cg"
@@ -2031,7 +2034,7 @@
     "return my borderWidth"
 
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView borderWidth
+	^ superView borderWidth
     ].
 
     border isNil ifTrue:[^ 0].
@@ -2047,25 +2050,25 @@
 
     aNumber := aNumberOrNil.
     aNumber notNil ifTrue:[
-        self assert:(aNumber >= 0).
-        aNumber := aNumber max: 0
+	self assert:(aNumber >= 0).
+	aNumber := aNumber max: 0
     ].
 
     "/ backward compatibility
     "/ superView will be renamed to container soon.
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView borderWidth:aNumber
+	^ superView borderWidth:aNumber
     ].
 
     (aNumber == 0 or:[aNumber isNil]) ifTrue:[
-        border isNil ifTrue:[^ self].
-        self border:nil.
+	border isNil ifTrue:[^ self].
+	self border:nil.
     ] ifFalse:[
-        border notNil ifTrue:[
-            self border:(border copy width:aNumber)
-        ] ifFalse:[
-            self border:(SimpleBorder new width:aNumber color:(self borderColor)).
-        ]
+	border notNil ifTrue:[
+	    self border:(border copy width:aNumber)
+	] ifFalse:[
+	    self border:(SimpleBorder new width:aNumber color:(self borderColor)).
+	]
     ].
 
 "/    (aNumber ~~ borderWidth) ifTrue:[
@@ -2080,8 +2083,8 @@
 
 computeMargin
     border isNil ifTrue:[
-        margin := level abs.
-        ^ self.
+	margin := level abs.
+	^ self.
     ].
     margin := border width.
 !
@@ -2111,15 +2114,15 @@
     "set both the foreground and background colors of the contents"
 
     self
-        foregroundColor:fgColor;
-        backgroundColor:bgColor
+	foregroundColor:fgColor;
+	backgroundColor:bgColor
 !
 
 level
     "return my level relative to superView (3D)"
 
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView level
+	^ superView level
     ].
     border notNil ifTrue:[^ border level].
     ^ level
@@ -2135,36 +2138,36 @@
     "/ backward compatibility
     "/ superView will be renamed to container soon.
     (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
-        ^ superView level:aNumber
+	^ superView level:aNumber
     ].
 
     (aNumber ~~ level and:[aNumber notNil]) ifTrue:[
-        self is3D ifTrue:[
-            level := aNumber.
-            oldMargin := margin.
-            margin := level abs.
-
-            realized ifTrue:[
-                margin ~~ oldMargin ifTrue:[
-                    (margin > oldMargin) ifTrue:[
-                        how := #smaller
-                    ] ifFalse:[
-                        how := #larger
-                    ].
-                    self sizeChanged:how.
-                    self setInnerClip.
-                ].
-                shown ifTrue:[
-                    margin ~~ oldMargin ifTrue:[
-                        self clearView.
-                        self redrawX:margin y:margin
-                               width:width-(margin*2)
-                              height:height-(margin*2)
-                    ].
-                    self redrawEdges.
-               ]
-            ]
-        ]
+	self is3D ifTrue:[
+	    level := aNumber.
+	    oldMargin := margin.
+	    margin := level abs.
+
+	    realized ifTrue:[
+		margin ~~ oldMargin ifTrue:[
+		    (margin > oldMargin) ifTrue:[
+			how := #smaller
+		    ] ifFalse:[
+			how := #larger
+		    ].
+		    self sizeChanged:how.
+		    self setInnerClip.
+		].
+		shown ifTrue:[
+		    margin ~~ oldMargin ifTrue:[
+			self clearView.
+			self redrawX:margin y:margin
+			       width:width-(margin*2)
+			      height:height-(margin*2)
+		    ].
+		    self redrawEdges.
+	       ]
+	    ]
+	]
     ]
 
     "Modified: 5.6.1996 / 14:12:17 / cg"
@@ -2174,10 +2177,10 @@
     "return the color to be used for lighted edges (3D only)"
 
     lightColor isNil ifTrue:[
-        |avgColor|
-
-        avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
-        lightColor := avgColor lightened.
+	|avgColor|
+
+	avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
+	lightColor := avgColor lightened.
     ].
     ^ lightColor
 !
@@ -2228,10 +2231,10 @@
     "return the color to be used for shadowed edges (3D only)"
 
     shadowColor isNil ifTrue:[
-        |avgColor|
-
-        avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
-        shadowColor := avgColor darkened.
+	|avgColor|
+
+	avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
+	shadowColor := avgColor darkened.
     ].
     ^ shadowColor
 !
@@ -2254,11 +2257,11 @@
     self assert:(something notNil) message:'invalid viewBackground argument'.
 
     something isColor ifTrue:[
-        device hasGrayscales ifTrue:[
-            avgColor := something averageColorIn:(0@0 corner:7@7).
-            shadowColor := avgColor darkened "on:device".
-            lightColor := avgColor lightened "on:device".
-        ]
+	device hasGrayscales ifTrue:[
+	    avgColor := something averageColorIn:(0@0 corner:7@7).
+	    shadowColor := avgColor darkened "on:device".
+	    lightColor := avgColor lightened "on:device".
+	]
     ].
     super viewBackground:something
 
@@ -2270,10 +2273,10 @@
      in myself and recursively in all of my subviews"
 
     (condition value:self) ifTrue:[
-        viewBackground ~~ something ifTrue:[
-            self viewBackground:something.
-            self invalidate
-        ].
+	viewBackground ~~ something ifTrue:[
+	    self viewBackground:something.
+	    self invalidate
+	].
     ].
 !
 
@@ -2281,19 +2284,19 @@
     "set the viewShape to aForm"
 
     aForm isNil ifTrue:[
-        viewShape := nil.
-        self drawableId notNil ifTrue:[
-            device setWindowShape:nil in:self drawableId
-        ]
+	viewShape := nil.
+	self drawableId notNil ifTrue:[
+	    device setWindowShape:nil in:self drawableId
+	]
     ] ifFalse:[
-        viewShape isNil ifTrue:[
-            viewShape := ArbitraryViewShape new
-        ].
-
-        viewShape viewShapeForm:aForm.
-        self drawableId notNil ifTrue:[
-            device setWindowShape:(aForm id) in:self drawableId
-        ]
+	viewShape isNil ifTrue:[
+	    viewShape := ArbitraryViewShape new
+	].
+
+	viewShape viewShapeForm:aForm.
+	self drawableId notNil ifTrue:[
+	    device setWindowShape:(aForm id) in:self drawableId
+	]
     ]
 
     "Modified: 18.9.1997 / 11:11:04 / cg"
@@ -2314,25 +2317,25 @@
     oldChannel == newChannel ifTrue:[^ self].
 
     oldChannel notNil ifTrue:[
-        changeSelector isNil ifTrue:[
-            oldChannel removeDependent:self
-        ] ifFalse:[
-            oldChannel retractInterestsFor:self.
-        ].
-        oldValue := oldChannel value.
+	changeSelector isNil ifTrue:[
+	    oldChannel removeDependent:self
+	] ifFalse:[
+	    oldChannel retractInterestsFor:self.
+	].
+	oldValue := oldChannel value.
     ].
     newChannel notNil ifTrue:[
-        changeSelector isNil ifTrue:[
-            newChannel addDependent:self.
-            newChannel value ~~ oldValue ifTrue:[
-                self update:#value with:nil from:newChannel.
-            ]
-        ] ifFalse:[
-            newChannel onChangeSend:changeSelector to:self.
-            newChannel value ~~ oldValue ifTrue:[
-                self perform:changeSelector.
-            ]
-        ]
+	changeSelector isNil ifTrue:[
+	    newChannel addDependent:self.
+	    newChannel value ~~ oldValue ifTrue:[
+		self update:#value with:nil from:newChannel.
+	    ]
+	] ifFalse:[
+	    newChannel onChangeSend:changeSelector to:self.
+	    newChannel value ~~ oldValue ifTrue:[
+		self perform:changeSelector.
+	    ]
+	]
     ].
 
     ^ newChannel
@@ -2409,7 +2412,7 @@
      Obsolete: please use a layout object."
 
     insets isNil ifTrue:[
-        insets := Array new:4.
+	insets := Array new:4.
     ].
     insets atAllPut:aNumber.
 
@@ -2417,7 +2420,7 @@
 "/    drawableId isNil ifTrue:[
 "/        self originChangedFlag:true
 "/    ] ifFalse:[
-        self containerChangedSize.
+	self containerChangedSize.
 "/    ]
 
     "Modified: 19.7.1996 / 17:30:18 / cg"
@@ -2453,15 +2456,15 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     newInset isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     (insets at:4) ~= newInset ifTrue:[
-        insets at:4 put:newInset.
-        self containerChangedSize
+	insets at:4 put:newInset.
+	self containerChangedSize
     ]
 
     "Modified: 19.7.1996 / 17:30:22 / cg"
@@ -2481,7 +2484,7 @@
 
     self explicitExtent:true.
     self pixelOrigin:aRectangle origin
-              corner:aRectangle corner
+	      corner:aRectangle corner
 
     "Created: 4.6.1996 / 21:44:27 / cg"
     "Modified: 10.1.1997 / 19:46:36 / cg"
@@ -2511,39 +2514,39 @@
      slowly migrating to use layoutObjects ...
     "
     layout notNil ifTrue:[
-        superView isNil ifTrue:[^ self preferredBounds corner].
-        ^ (layout rectangleRelativeTo:(superView viewRectangle)
-                            preferred:[self preferredBounds]) corner rounded
+	superView isNil ifTrue:[^ self preferredBounds corner].
+	^ (layout rectangleRelativeTo:(superView viewRectangle)
+			    preferred:[self preferredBounds]) corner rounded
     ].
 
     (cornerRule notNil) ifTrue:[
-        newCorner := cornerRule value.
-        "
-         allow return of relative values ...
-        "
-        x := newCorner x.
-        y := newCorner y.
-        x isNil ifTrue:[x := self corner x].
-        y isNil ifTrue:[y := self corner y].
-        ((x isInteger not) or:[y isInteger not]) ifTrue:[
-            newCorner := self cornerFromRelativeCorner:x@y
-        ]
+	newCorner := cornerRule value.
+	"
+	 allow return of relative values ...
+	"
+	x := newCorner x.
+	y := newCorner y.
+	x isNil ifTrue:[x := self corner x].
+	y isNil ifTrue:[y := self corner y].
+	((x isInteger not) or:[y isInteger not]) ifTrue:[
+	    newCorner := self cornerFromRelativeCorner:x@y
+	]
     ] ifFalse:[
-        (relativeCorner notNil) ifTrue:[
-            newCorner := self cornerFromRelativeCorner:relativeCorner
-        ] ifFalse:[
-            org := self computeOrigin.
-            (extentRule notNil) ifTrue:[
-                newExt := extentRule value
-            ] ifFalse:[
-                (relativeExtent notNil) ifTrue:[
-                    newExt := self extentFromRelativeExtent:relativeExtent
-                ] ifFalse:[
-                    newExt := self extent.
-                ]
-            ].
-            newCorner := org + newExt
-        ]
+	(relativeCorner notNil) ifTrue:[
+	    newCorner := self cornerFromRelativeCorner:relativeCorner
+	] ifFalse:[
+	    org := self computeOrigin.
+	    (extentRule notNil) ifTrue:[
+		newExt := extentRule value
+	    ] ifFalse:[
+		(relativeExtent notNil) ifTrue:[
+		    newExt := self extentFromRelativeExtent:relativeExtent
+		] ifFalse:[
+		    newExt := self extent.
+		]
+	    ].
+	    newCorner := org + newExt
+	]
     ].
     ^ newCorner
 
@@ -2564,51 +2567,51 @@
      slowly migrating to use layoutObjects ...
     "
     layout notNil ifTrue:[
-        ^ (layout rectangleRelativeTo:(superView viewRectangle)
-                            preferred:[self preferredBounds]) extent rounded
+	^ (layout rectangleRelativeTo:(superView viewRectangle)
+			    preferred:[self preferredBounds]) extent rounded
     ].
 
     (cornerRule notNil) ifTrue:[
-        newCorner := cornerRule value.
-        "
-         allow return of relative values ...
-        "
-        x := newCorner x.
-        y := newCorner y.
-        x isNil ifTrue:[x := self corner x].
-        y isNil ifTrue:[y := self corner y].
-        ((x isInteger not) or:[y isInteger not]) ifTrue:[
-            newCorner := self cornerFromRelativeCorner:x@y
-        ]
+	newCorner := cornerRule value.
+	"
+	 allow return of relative values ...
+	"
+	x := newCorner x.
+	y := newCorner y.
+	x isNil ifTrue:[x := self corner x].
+	y isNil ifTrue:[y := self corner y].
+	((x isInteger not) or:[y isInteger not]) ifTrue:[
+	    newCorner := self cornerFromRelativeCorner:x@y
+	]
     ] ifFalse:[
-        (relativeCorner notNil) ifTrue:[
-            newCorner := self cornerFromRelativeCorner:relativeCorner
-        ] ifFalse:[
-            (extentRule notNil) ifTrue:[
-                newExt := extentRule value.
-                "
-                 allow return of relative values ...
-                "
-                x := newExt x.
-                y := newExt y.
-                x isNil ifTrue:[x := width].
-                y isNil ifTrue:[y := height].
-                ((x isInteger not) or:[y isInteger not]) ifTrue:[
-                    newExt := self extentFromRelativeExtent:x@y
-                ]
-            ] ifFalse:[
-                (relativeExtent notNil) ifTrue:[
-                    newExt := self extentFromRelativeExtent:relativeExtent
-                ] ifFalse:[
-                    newExt := (width @ height).
-                ].
-            ].
-        ].
+	(relativeCorner notNil) ifTrue:[
+	    newCorner := self cornerFromRelativeCorner:relativeCorner
+	] ifFalse:[
+	    (extentRule notNil) ifTrue:[
+		newExt := extentRule value.
+		"
+		 allow return of relative values ...
+		"
+		x := newExt x.
+		y := newExt y.
+		x isNil ifTrue:[x := width].
+		y isNil ifTrue:[y := height].
+		((x isInteger not) or:[y isInteger not]) ifTrue:[
+		    newExt := self extentFromRelativeExtent:x@y
+		]
+	    ] ifFalse:[
+		(relativeExtent notNil) ifTrue:[
+		    newExt := self extentFromRelativeExtent:relativeExtent
+		] ifFalse:[
+		    newExt := (width @ height).
+		].
+	    ].
+	].
     ].
 
     newCorner notNil ifTrue:[
-        newOrg := self computeOrigin.
-        ^ newCorner - newOrg.
+	newOrg := self computeOrigin.
+	^ newCorner - newOrg.
     ].
     ^ newExt.
 !
@@ -2625,29 +2628,29 @@
      slowly migrating to use layoutObjects ...
     "
     layout notNil ifTrue:[
-        superView isNil ifTrue:[^ 0@0].
-        ^ (layout rectangleRelativeTo:(superView viewRectangle)
-                            preferred:[self preferredBounds]) origin rounded
+	superView isNil ifTrue:[^ 0@0].
+	^ (layout rectangleRelativeTo:(superView viewRectangle)
+			    preferred:[self preferredBounds]) origin rounded
     ].
 
     (originRule notNil) ifTrue:[
-        newOrg := originRule value.
-        "
-         allow return of relative values ...
-        "
-        x := newOrg x.
-        y := newOrg y.
-        x isNil ifTrue:[x := self origin x].
-        y isNil ifTrue:[y := self origin y].
-        ((x isInteger not) or:[y isInteger not]) ifTrue:[
-            newOrg := self originFromRelativeOrigin:x@y.
-        ]
+	newOrg := originRule value.
+	"
+	 allow return of relative values ...
+	"
+	x := newOrg x.
+	y := newOrg y.
+	x isNil ifTrue:[x := self origin x].
+	y isNil ifTrue:[y := self origin y].
+	((x isInteger not) or:[y isInteger not]) ifTrue:[
+	    newOrg := self originFromRelativeOrigin:x@y.
+	]
     ] ifFalse:[
-        (relativeOrigin notNil) ifTrue:[
-            newOrg := self originFromRelativeOrigin:relativeOrigin.
-        ] ifFalse:[
-            ^ (left @ top).
-        ].
+	(relativeOrigin notNil) ifTrue:[
+	    newOrg := self originFromRelativeOrigin:relativeOrigin.
+	] ifFalse:[
+	    ^ (left @ top).
+	].
     ].
     ^ newOrg
 !
@@ -2664,10 +2667,10 @@
 corner:corner
     "set the views corner;
      the corner argument may be:
-         a point
-            where integer fields mean 'pixel-values'
-            and float values mean 'relative-to-superview'
-            and nil means 'take current value';
+	 a point
+	    where integer fields mean 'pixel-values'
+	    and float values mean 'relative-to-superview'
+	    and nil means 'take current value';
      or a block returning a point which is interpreted as above.
      Please migrate to use layoutObjects, if possible."
 
@@ -2676,31 +2679,31 @@
     self explicitExtent:true.
 
     corner isBlock ifTrue:[
-        cornerRule := corner.
-        self drawableId notNil ifTrue:[
-            pixelCorner := corner value
-        ] ifFalse:[
-            self extentChangedFlag:true
-        ]
+	cornerRule := corner.
+	self drawableId notNil ifTrue:[
+	    pixelCorner := corner value
+	] ifFalse:[
+	    self extentChangedFlag:true
+	]
     ] ifFalse:[
-        x := corner x.
-        y := corner y.
-        x isNil ifTrue:[x := self corner x].
-        y isNil ifTrue:[y := self corner y].
-        c := x @ y.
-        ((x isInteger not) or:[y isInteger not]) ifTrue:[
-            relativeCorner := c.
-            pixelCorner := self cornerFromRelativeCorner.
-            pixelCorner isNil ifTrue:[
-                self extentChangedFlag:true
-            ]
-        ] ifFalse:[
-            pixelCorner := c
-        ]
+	x := corner x.
+	y := corner y.
+	x isNil ifTrue:[x := self corner x].
+	y isNil ifTrue:[y := self corner y].
+	c := x @ y.
+	((x isInteger not) or:[y isInteger not]) ifTrue:[
+	    relativeCorner := c.
+	    pixelCorner := self cornerFromRelativeCorner.
+	    pixelCorner isNil ifTrue:[
+		self extentChangedFlag:true
+	    ]
+	] ifFalse:[
+	    pixelCorner := c
+	]
     ].
 
     pixelCorner notNil ifTrue:[
-        self pixelCorner:pixelCorner
+	self pixelCorner:pixelCorner
     ]
 
     "Modified: 15.7.1996 / 09:51:06 / cg"
@@ -2715,51 +2718,51 @@
 extent:extent
     "set the views extent;
      extent may be:
-        a point
-            where integer fields mean 'pixel-values'
-            and float values mean 'relative-to-superview'
-            and nil means 'leave current value';
+	a point
+	    where integer fields mean 'pixel-values'
+	    and float values mean 'relative-to-superview'
+	    and nil means 'leave current value';
      or a block returning a point which is interpreted as above.
      Be careful when using relative extents: rounding errors may
      accumulate. Better use origin/corner.
      Best: migrate to use layour objects.
 
      Notice: this sets the views explicitExtent flag, which prevents it normally
-             from resizing itself to its preferredExtent.
-             See initialExtent: for a variation."
+	     from resizing itself to its preferredExtent.
+	     See initialExtent: for a variation."
 
     |w h pixelExtent e|
 
     self explicitExtent:true.
 
     extent isBlock ifTrue:[
-        extentRule := extent.
-        self drawableId notNil ifTrue:[
-            pixelExtent := extent value
-        ] ifFalse:[
-            self extentChangedFlag:true
-        ]
+	extentRule := extent.
+	self drawableId notNil ifTrue:[
+	    pixelExtent := extent value
+	] ifFalse:[
+	    self extentChangedFlag:true
+	]
     ] ifFalse:[
-        extentRule := nil.
-        w := extent x.
-        h := extent y.
-        w isNil ifTrue:[w := width].
-        h isNil ifTrue:[h := height].
-        e := w@h.
-        ((w isInteger not) or:[h isInteger not]) ifTrue:[
-            "/ w > 1 ifTrue:[self halt].
-            relativeExtent := e.
-            pixelExtent := self extentFromRelativeExtent.
-            pixelExtent isNil ifTrue:[
-                self extentChangedFlag:true
-            ]
-        ] ifFalse:[
-            relativeExtent := nil.
-            pixelExtent := e
-        ]
+	extentRule := nil.
+	w := extent x.
+	h := extent y.
+	w isNil ifTrue:[w := width].
+	h isNil ifTrue:[h := height].
+	e := w@h.
+	((w isInteger not) or:[h isInteger not]) ifTrue:[
+	    "/ w > 1 ifTrue:[self halt].
+	    relativeExtent := e.
+	    pixelExtent := self extentFromRelativeExtent.
+	    pixelExtent isNil ifTrue:[
+		self extentChangedFlag:true
+	    ]
+	] ifFalse:[
+	    relativeExtent := nil.
+	    pixelExtent := e
+	]
     ].
     pixelExtent notNil ifTrue:[
-        self pixelExtent:pixelExtent
+	self pixelExtent:pixelExtent
     ]
 
     "Modified: / 07-07-2010 / 16:44:57 / cg"
@@ -2809,7 +2812,7 @@
 "/    aNumber isInteger ifTrue:[
 "/        height := aNumber.
 "/    ] ifFalse:[
-        self extent:(width @ aNumber)
+	self extent:(width @ aNumber)
 "/    ].
 
     "Modified: / 02-02-2011 / 12:16:44 / cg"
@@ -2831,11 +2834,11 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     aNumber isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     insets at:1 put:newInset.
     insets at:3 put:newInset.
@@ -2844,7 +2847,7 @@
 "/    drawableId isNil ifTrue:[
 "/        self originChangedFlag:true
 "/    ] ifFalse:[
-        self containerChangedSize.
+	self containerChangedSize.
 "/    ]
 
     "Modified: / 30-09-2006 / 15:19:28 / cg"
@@ -2940,8 +2943,8 @@
     "set the layout object which controls my geometry."
 
     layout ~= aLayoutObject ifTrue:[
-        layout := aLayoutObject.
-        self layoutChanged.
+	layout := aLayoutObject.
+	self layoutChanged.
     ].
 
     "Modified: 19.9.1995 / 16:17:25 / claus"
@@ -2950,9 +2953,9 @@
 
 layoutChanged
     superView isNil ifTrue:[
-        self originChangedFlag:true extentChangedFlag:true cornerChangedFlag:true.
+	self originChangedFlag:true extentChangedFlag:true cornerChangedFlag:true.
     ] ifFalse:[
-        self containerChangedSize.
+	self containerChangedSize.
     ]
 
     "Modified: 19.9.1995 / 16:17:25 / claus"
@@ -2995,15 +2998,15 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     newInset isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     (insets at:1) ~= newInset ifTrue:[
-        insets at:1 put:newInset.
-        self containerChangedSize.
+	insets at:1 put:newInset.
+	self containerChangedSize.
     ]
 
     "Modified: 19.7.1996 / 17:30:30 / cg"
@@ -3029,19 +3032,19 @@
     cornerVisible := myDevice pointIsVisible:corner.
 
     (myDevice pointsAreOnSameMonitor:origin and:corner) ifTrue:[
-        referencePoint := origin.
+	referencePoint := origin.
     ] ifFalse:[
-        originVisible ifTrue:[
-            "origin is visible"
-            referencePoint := origin.
-        ] ifFalse:[
-            cornerVisible notNil ifTrue:[
-                "corner is visible"
-                referencePoint := corner.
-            ] ifFalse:[
-                referencePoint := 1@1.
-            ].
-        ].
+	originVisible ifTrue:[
+	    "origin is visible"
+	    referencePoint := origin.
+	] ifFalse:[
+	    cornerVisible notNil ifTrue:[
+		"corner is visible"
+		referencePoint := corner.
+	    ] ifFalse:[
+		referencePoint := 1@1.
+	    ].
+	].
     ].
     deviceBounds := myDevice monitorBoundsAt:referencePoint.
 
@@ -3054,40 +3057,40 @@
     cornerVisible ifTrue:[ deviceBottom := deviceBottom min:(myDevice usableHeightAt:corner) ].
 
     corner y > deviceBottom ifTrue:[
-        cornerVisible := false.
+	cornerVisible := false.
     ].
 
     UserPreferences current forceWindowsIntoMonitorBounds ifFalse:[
-        (originVisible and:[cornerVisible]) ifTrue:[^ self].
+	(originVisible and:[cornerVisible]) ifTrue:[^ self].
     ].
 
     "/ deviceRight := deviceRight min:device usableWidth.
     originVisible ifFalse:[
-        cornerVisible ifFalse:[
-            newTop := deviceBottom - height.
-            newLeft := deviceRight - width.
-            newLeft := newLeft max:deviceLeft.
-            newTop := newTop max:deviceTop.
-        ] ifTrue:[
-            "/ origin is not; corner is in
-            newLeft := (deviceLeft max:newLeft).
-            newTop := (deviceTop max:newTop).
-        ].
+	cornerVisible ifFalse:[
+	    newTop := deviceBottom - height.
+	    newLeft := deviceRight - width.
+	    newLeft := newLeft max:deviceLeft.
+	    newTop := newTop max:deviceTop.
+	] ifTrue:[
+	    "/ origin is not; corner is in
+	    newLeft := (deviceLeft max:newLeft).
+	    newTop := (deviceTop max:newTop).
+	].
     ] ifTrue:[
-        "/ notice, the position-dependent query: if there is a higher secondary screen,
-        "/ this makes a difference in where a popUpMenu is allowed...
-        (corner y > deviceBottom) ifTrue:[
-            newTop := deviceBottom - height
-        ].
-        (corner x > deviceRight) ifTrue:[
-            newLeft := deviceRight - width
-        ].
-        newLeft := newLeft max:deviceLeft.
-        newTop := newTop max:deviceTop.
+	"/ notice, the position-dependent query: if there is a higher secondary screen,
+	"/ this makes a difference in where a popUpMenu is allowed...
+	(corner y > deviceBottom) ifTrue:[
+	    newTop := deviceBottom - height
+	].
+	(corner x > deviceRight) ifTrue:[
+	    newLeft := deviceRight - width
+	].
+	newLeft := newLeft max:deviceLeft.
+	newTop := newTop max:deviceTop.
     ].
 
     ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
-        self origin:newLeft @ newTop
+	self origin:newLeft @ newTop
     ].
 
     "Modified: / 27-10-2012 / 13:15:58 / cg"
@@ -3112,35 +3115,35 @@
 "/    ].
 
     device supportsArbitraryShapedViews ifTrue:[
-        extent := self extent.
-        w := extent x.
-        h := extent y.
-        borderForm := Form extent:extent.
-        shapeForm  := Form extent:extent.
-
-        borderForm fillArcX:0 y:0
-                  width:w
-                 height:h
-                   from:0
-                  angle:360.
-
-        opaque ifFalse:[
-            f := borderForm.
-            borderForm foreground:(Color colorId:0).
-        ] ifTrue:[
-            f := shapeForm.
-            shapeForm foreground:(Color colorId:1).
-        ].
-
-        f fillArcX:(lw := gc lineWidth) y:lw
-                width:w - (bw * 2)
-               height:h - (bw * 2)
-                 from:0
-                angle:360.
-
-        self borderShape:borderForm.
-        self viewShape:shapeForm.
-        ^ self.
+	extent := self extent.
+	w := extent x.
+	h := extent y.
+	borderForm := Form extent:extent.
+	shapeForm  := Form extent:extent.
+
+	borderForm fillArcX:0 y:0
+		  width:w
+		 height:h
+		   from:0
+		  angle:360.
+
+	opaque ifFalse:[
+	    f := borderForm.
+	    borderForm foreground:(Color colorId:0).
+	] ifTrue:[
+	    f := shapeForm.
+	    shapeForm foreground:(Color colorId:1).
+	].
+
+	f fillArcX:(lw := gc lineWidth) y:lw
+		width:w - (bw * 2)
+	       height:h - (bw * 2)
+		 from:0
+		angle:360.
+
+	self borderShape:borderForm.
+	self viewShape:shapeForm.
+	^ self.
 
 "/
 "/        extent := self extent.
@@ -3191,28 +3194,28 @@
 "/    ].
 
     device supportsArbitraryShapedViews ifTrue:[
-        extent := self extent.
-        w := extent x.
-        h := extent y.
-        borderForm := Form extent:extent.
-        shapeForm  := Form extent:extent.
-
-        borderForm
-            fillRectangleX:0 y:0
-            width:w
-            height:h.
-
-        f := borderForm.
-        borderForm foreground:(Color colorId:0).
-
-        borderForm
-            fillRectangleX:bw y:bw
-            width:w - (bw * 2)
-            height:h - (bw * 2).
-
-        self borderShape:borderForm.
-        self viewShape:shapeForm.
-        ^ self.
+	extent := self extent.
+	w := extent x.
+	h := extent y.
+	borderForm := Form extent:extent.
+	shapeForm  := Form extent:extent.
+
+	borderForm
+	    fillRectangleX:0 y:0
+	    width:w
+	    height:h.
+
+	f := borderForm.
+	borderForm foreground:(Color colorId:0).
+
+	borderForm
+	    fillRectangleX:bw y:bw
+	    width:w - (bw * 2)
+	    height:h - (bw * 2).
+
+	self borderShape:borderForm.
+	self viewShape:shapeForm.
+	^ self.
     ]
 !
 
@@ -3241,42 +3244,42 @@
 origin:origin
     "set the views origin;
      origin may be:
-        a point
-            where integer fields mean 'pixel-values'
-            and float values mean 'relative-to-superview'
-            and nil means 'take current value';
+	a point
+	    where integer fields mean 'pixel-values'
+	    and float values mean 'relative-to-superview'
+	    and nil means 'take current value';
      or a block returning a point which is interpreted as above.
      Please migrate to use layout objects."
 
     |newLeft newTop pixelOrigin o|
 
     origin isBlock ifTrue:[
-        originRule := origin.
-        self drawableId notNil ifTrue:[
-            pixelOrigin := origin value
-        ] ifFalse:[
-            self originChangedFlag:true
-        ]
+	originRule := origin.
+	self drawableId notNil ifTrue:[
+	    pixelOrigin := origin value
+	] ifFalse:[
+	    self originChangedFlag:true
+	]
     ] ifFalse:[
-        o := origin.
-        newLeft := origin x.
-        newTop := origin y.
-        newLeft isNil ifTrue:[newLeft := left].
-        newTop isNil ifTrue:[newTop := top].
-        o := newLeft @ newTop.
-        ((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
-            relativeOrigin := o.
-            pixelOrigin := self originFromRelativeOrigin.
-            pixelOrigin isNil ifTrue:[
-                self originChangedFlag:true
-            ]
-        ] ifFalse:[
-            relativeOrigin := nil.
-            pixelOrigin := o
-        ]
+	o := origin.
+	newLeft := origin x.
+	newTop := origin y.
+	newLeft isNil ifTrue:[newLeft := left].
+	newTop isNil ifTrue:[newTop := top].
+	o := newLeft @ newTop.
+	((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
+	    relativeOrigin := o.
+	    pixelOrigin := self originFromRelativeOrigin.
+	    pixelOrigin isNil ifTrue:[
+		self originChangedFlag:true
+	    ]
+	] ifFalse:[
+	    relativeOrigin := nil.
+	    pixelOrigin := o
+	]
     ].
     pixelOrigin notNil ifTrue:[
-        self pixelOrigin:pixelOrigin
+	self pixelOrigin:pixelOrigin
     ].
 
     "Modified: 19.4.1996 / 15:12:36 / cg"
@@ -3292,21 +3295,21 @@
     "do it as one operation if possible"
 
     origin isBlock ifFalse:[
-        corner isBlock ifFalse:[
-            newLeft := origin x.
-            newLeft isInteger ifTrue:[
-                newTop := origin y.
-                newTop isInteger ifTrue:[
-                    newRight := corner x.
-                    newRight isInteger ifTrue:[
-                        newBot := corner y.
-                        newBot isInteger ifTrue:[
-                            self pixelOrigin:origin corner:corner
-                        ]
-                    ]
-                ]
-            ]
-        ]
+	corner isBlock ifFalse:[
+	    newLeft := origin x.
+	    newLeft isInteger ifTrue:[
+		newTop := origin y.
+		newTop isInteger ifTrue:[
+		    newRight := corner x.
+		    newRight isInteger ifTrue:[
+			newBot := corner y.
+			newBot isInteger ifTrue:[
+			    self pixelOrigin:origin corner:corner
+			]
+		    ]
+		]
+	    ]
+	]
     ].
     self origin:origin.
     self corner:corner
@@ -3324,21 +3327,21 @@
     "do it as one operation if possible"
 
     origin isBlock ifFalse:[
-        extent isBlock ifFalse:[
-            newLeft := origin x.
-            newLeft isInteger ifTrue:[
-                newTop := origin y.
-                newTop isInteger ifTrue:[
-                    newWidth := extent x.
-                    newWidth isInteger ifTrue:[
-                        newHeight := extent y.
-                        newHeight isInteger ifTrue:[
-                            self pixelOrigin:origin extent:extent
-                        ]
-                    ]
-                ]
-            ]
-        ]
+	extent isBlock ifFalse:[
+	    newLeft := origin x.
+	    newLeft isInteger ifTrue:[
+		newTop := origin y.
+		newTop isInteger ifTrue:[
+		    newWidth := extent x.
+		    newWidth isInteger ifTrue:[
+			newHeight := extent y.
+			newHeight isInteger ifTrue:[
+			    self pixelOrigin:origin extent:extent
+			]
+		    ]
+		]
+	    ]
+	]
     ].
     self extent:extent.
     self origin:origin
@@ -3360,17 +3363,17 @@
     sumX := 0.
     sumY := 0.
     [currentView notNil] whileTrue:[
-        (currentView == aView) ifTrue:[
-            ^ (sumX @ sumY)
-        ].
-        bw := currentView borderWidth.
-        sumX := sumX + (currentView left) + bw.
-        sumY := sumY + (currentView top) + bw.
-        currentView := currentView superView
+	(currentView == aView) ifTrue:[
+	    ^ (sumX @ sumY)
+	].
+	bw := currentView borderWidth.
+	sumX := sumX + (currentView left) + bw.
+	sumY := sumY + (currentView top) + bw.
+	currentView := currentView superView
     ].
     (aView isNil or:[aView == device rootView]) ifTrue:[
-        "return relative to screen ..."
-        ^ (sumX @ sumY)
+	"return relative to screen ..."
+	^ (sumX @ sumY)
     ].
     ^ nil
 
@@ -3410,10 +3413,10 @@
 
     "MB:added  {" "needed if layout is used e.g. POUEditor"
     layout notNil ifTrue:[
-        layout isRectangle ifTrue:[
-            ^ 0@0
-        ].
-        ^(layout rightFraction) @ (layout bottomFraction)
+	layout isRectangle ifTrue:[
+	    ^ 0@0
+	].
+	^(layout rightFraction) @ (layout bottomFraction)
     ].
     "MB:added  }"
 
@@ -3427,8 +3430,8 @@
     relativeCorner := aPoint.
     "MB:added  {" "needed if layout is used e.g. POUEditor"
     layout notNil ifTrue:[
-        layout rightFraction: aPoint x.
-        layout bottomFraction: aPoint y.
+	layout rightFraction: aPoint x.
+	layout bottomFraction: aPoint y.
     ].
     "MB:added  }"
 !
@@ -3453,10 +3456,10 @@
 
     "MB:added  {"  "needed if layout is used e.g. POUEditor"
     layout notNil ifTrue:[
-        layout isRectangle ifTrue:[
-            ^ 0@0
-        ].
-        ^(layout leftFraction) @ (layout topFraction)
+	layout isRectangle ifTrue:[
+	    ^ 0@0
+	].
+	^(layout leftFraction) @ (layout topFraction)
     ].
     "MB:added  }"
     ^relativeOrigin
@@ -3468,8 +3471,8 @@
     relativeOrigin := aPoint.
     "MB:added  {" "needed if layout is used e.g. POUEditor"
     layout notNil ifTrue:[
-        layout leftFraction: aPoint x.
-        layout topFraction: aPoint y.
+	layout leftFraction: aPoint x.
+	layout topFraction: aPoint y.
     ].
     "MB:added  }"
 !
@@ -3506,15 +3509,15 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     newInset isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     (insets at:3) ~= newInset ifTrue:[
-        insets at:3 put:newInset.
-        self containerChangedSize.
+	insets at:3 put:newInset.
+	self containerChangedSize.
     ]
 
     "Modified: 19.7.1996 / 17:30:32 / cg"
@@ -3565,7 +3568,7 @@
     "return the inside area of the superView."
 
     superView isNil ifTrue:[
-        ^ Rectangle left:0 top:0 right:0 bottom:0.
+	^ Rectangle left:0 top:0 right:0 bottom:0.
     ].
 
     ^ superView viewRectangle.
@@ -3601,15 +3604,15 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     newInset isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     (insets at:2) ~= newInset ifTrue:[
-        insets at:2 put:newInset.
-        self containerChangedSize.
+	insets at:2 put:newInset.
+	self containerChangedSize.
     ]
 
     "Modified: 19.7.1996 / 17:30:45 / cg"
@@ -3623,11 +3626,11 @@
     |newInset|
 
     insets isNil ifTrue:[
-        insets := Array with:0 with:0 with:0 with:0
+	insets := Array with:0 with:0 with:0 with:0
     ].
     newInset := aNumber.
     aNumber isNil ifTrue:[
-        newInset := 0.
+	newInset := 0.
     ].
     insets at:2 put:newInset.
     insets at:4 put:newInset.
@@ -3636,7 +3639,7 @@
 "/    drawableId isNil ifTrue:[
 "/        self originChangedFlag:true
 "/    ] ifFalse:[
-        self containerChangedSize.
+	self containerChangedSize.
 "/    ]
 
     "Modified: / 30-09-2006 / 15:19:45 / cg"
@@ -3667,7 +3670,7 @@
 "/    aNumber isInteger ifTrue:[
 "/        width := aNumber.
 "/    ] ifFalse:[
-        self extent:(aNumber @ height)
+	self extent:(aNumber @ height)
 "/    ]
 
     "Modified: / 02-02-2011 / 12:16:26 / cg"
@@ -3738,19 +3741,19 @@
     "set my container (i.e. superView) to be aContainer"
 
     superView == aContainer ifTrue:[
-        "/ no change
-        ^ self.
+	"/ no change
+	^ self.
     ].
 
     (self drawableId notNil) ifTrue:[
-        "/ actually, this is worth an exception
-        "/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
-        self error:'already realized - cannot change container' mayProceed:true.
+	"/ actually, this is worth an exception
+	"/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
+	self error:'already realized - cannot change container' mayProceed:true.
     ].
     (superView notNil and:[superView ~~ aContainer]) ifTrue:[
-        "/ actually, this is worth an exception
-        ('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
-        superView removeComponent:self.
+	"/ actually, this is worth an exception
+	('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
+	superView removeComponent:self.
     ].
     superView := aContainer
 
@@ -3768,7 +3771,7 @@
     myName := self uuidStringOrName.
     viewsWithSameName := aViewCollection select:[:v | v uuidStringOrName = myName].
     viewsWithSameName size = 1 ifTrue:[
-        ^ nil "/ no conflict
+	^ nil "/ no conflict
     ].
     ^ viewsWithSameName indexOf:self
 !
@@ -3786,21 +3789,21 @@
     superV := self superView.
 
     [superV isNil] whileFalse:[
-        hierarchicalViews addFirst: superV.
-        superV := superV superView.
+	hierarchicalViews addFirst: superV.
+	superV := superV superView.
     ].
 
     hierarchicalViews doWithIndex:[:aView :index |
-        uuidOrName := aView uuidStringOrName.
-        indexString := nil.
-        index > 1 ifTrue:[
-            indexOrNil := aView hierarchicalIndex.
-            (indexOrNil notNil and:[indexOrNil ~= 1]) ifTrue:[
-                indexString := '[',indexOrNil printString,']'
-            ]
-        ].
-        separator := index == 1 ifTrue:[''] ifFalse:['.'].
-        hierarchicalUUID := hierarchicalUUID,separator,uuidOrName,(indexString?'').
+	uuidOrName := aView uuidStringOrName.
+	indexString := nil.
+	index > 1 ifTrue:[
+	    indexOrNil := aView hierarchicalIndex.
+	    (indexOrNil notNil and:[indexOrNil ~= 1]) ifTrue:[
+		indexString := '[',indexOrNil printString,']'
+	    ]
+	].
+	separator := index == 1 ifTrue:[''] ifFalse:['.'].
+	hierarchicalUUID := hierarchicalUUID,separator,uuidOrName,(indexString?'').
     ].
     ^ hierarchicalUUID
 !
@@ -3867,9 +3870,9 @@
 
     subViews := aListOfViews.
     subViews notNil ifTrue:[
-        subViews do:[:view |
-            view container:self
-        ]
+	subViews do:[:view |
+	    view container:self
+	]
     ]
 
     "Modified: 9.5.1996 / 00:42:28 / cg"
@@ -3909,10 +3912,10 @@
     n := 1.
     v := self.
     [v notNil] whileTrue:[
-        (next := v container) isNil ifTrue:[^ v].
-        v := next.
-        n := n + 1.
-        n > 1000 ifTrue:[self error:'circular superView chain'].
+	(next := v container) isNil ifTrue:[^ v].
+	v := next.
+	n := n + 1.
+	n > 1000 ifTrue:[self error:'circular superView chain'].
     ].
 
     ^ nil
@@ -3980,14 +3983,14 @@
      the model first, then use the views menu.
     "
     (menuHolder respondsTo:sym) ifFalse:[
-        (self respondsTo:sym) ifTrue:[
-            menuHolder := self
-        ]
+	(self respondsTo:sym) ifTrue:[
+	    menuHolder := self
+	]
     ].
 
     sym numArgs > 0 ifTrue:[
-        "/ squeak compatibility (with args): create the empty menu here, let model add items
-        ^ menuHolder perform:sym withOptionalArgument:(Menu new) and:(device shiftDown).
+	"/ squeak compatibility (with args): create the empty menu here, let model add items
+	^ menuHolder perform:sym withOptionalArgument:(Menu new) and:(device shiftDown).
     ].
 
     "
@@ -4010,8 +4013,8 @@
      when the view is resized."
 
     bitGravity ~~ gravity ifTrue:[
-        bitGravity := gravity.
-        gc bitGravity:gravity.
+	bitGravity := gravity.
+	gc bitGravity:gravity.
     ]
 !
 
@@ -4024,53 +4027,53 @@
 
     currentClippingBounds := gc clippingBoundsOrNil.
     (currentClippingBounds = aRectangleOrNil) ifTrue:[
-        ^ self
+	^ self
     ].
     newBounds := aRectangleOrNil.
 
     aRectangleOrNil notNil ifTrue:[
-        |currentTransformation|
-
-        x := aRectangleOrNil left.
-        y := aRectangleOrNil top.
-        w := aRectangleOrNil width.
-        h := aRectangleOrNil height.
-        currentTransformation := gc transformation.
-        currentTransformation notNil ifTrue:[
-            x := currentTransformation applyToX:x.
-            y := currentTransformation applyToY:y.
-            w := currentTransformation applyScaleX:w.
-            h := currentTransformation applyScaleY:h.
-        ].
-        (x class ~~ SmallInteger) ifTrue:[
-            w := w + (x - x truncated).
-            x := x truncated
-        ].
-        (y class ~~ SmallInteger) ifTrue:[
-            h := h + (y - y truncated).
-            y := y truncated
-        ].
-        (w class ~~ SmallInteger) ifTrue:[
-            w := w truncated + 1
-        ].
-        (h class ~~ SmallInteger) ifTrue:[
-            h := h truncated + 1
-        ].
-        x < margin ifTrue:[
-            x := margin.
-        ].
-        y < margin ifTrue:[
-            y := margin.
-        ].
-        x + w - 1 >= (width-margin) ifTrue:[
-            w := width - margin - x
-        ].
-        y + h - 1 >= (height-margin) ifTrue:[
-            h := height - margin - y
-        ].
-        w := w max:0.
-        h := h max:0.
-        newBounds := Rectangle left:x top:y width:w height:h.
+	|currentTransformation|
+
+	x := aRectangleOrNil left.
+	y := aRectangleOrNil top.
+	w := aRectangleOrNil width.
+	h := aRectangleOrNil height.
+	currentTransformation := gc transformation.
+	currentTransformation notNil ifTrue:[
+	    x := currentTransformation applyToX:x.
+	    y := currentTransformation applyToY:y.
+	    w := currentTransformation applyScaleX:w.
+	    h := currentTransformation applyScaleY:h.
+	].
+	(x class ~~ SmallInteger) ifTrue:[
+	    w := w + (x - x truncated).
+	    x := x truncated
+	].
+	(y class ~~ SmallInteger) ifTrue:[
+	    h := h + (y - y truncated).
+	    y := y truncated
+	].
+	(w class ~~ SmallInteger) ifTrue:[
+	    w := w truncated + 1
+	].
+	(h class ~~ SmallInteger) ifTrue:[
+	    h := h truncated + 1
+	].
+	x < margin ifTrue:[
+	    x := margin.
+	].
+	y < margin ifTrue:[
+	    y := margin.
+	].
+	x + w - 1 >= (width-margin) ifTrue:[
+	    w := width - margin - x
+	].
+	y + h - 1 >= (height-margin) ifTrue:[
+	    h := height - margin - y
+	].
+	w := w max:0.
+	h := h max:0.
+	newBounds := Rectangle left:x top:y width:w height:h.
     ].
     gc deviceClippingBounds:newBounds
 
@@ -4082,7 +4085,7 @@
     "return my full name to be used for resource-access"
 
     superView notNil ifTrue:[
-        ^ superView fullName , '.' , self name
+	^ superView fullName , '.' , self name
     ].
     ^ self name
 !
@@ -4091,7 +4094,7 @@
     "return my name component to be used for resource-access"
 
     name isNil ifTrue:[
-        name := self class name "asString" asLowercaseFirst
+	name := self class name "asString" asLowercaseFirst
     ].
     ^ name
 !
@@ -4148,8 +4151,8 @@
      when the superView is resized."
 
     viewGravity ~~ gravity ifTrue:[
-        viewGravity := gravity.
-        gc viewGravity:gravity.
+	viewGravity := gravity.
+	gc viewGravity:gravity.
     ]
 ! !
 
@@ -4160,7 +4163,7 @@
      or nil, if there is no application"
 
     superView notNil ifTrue:[
-        ^ superView application
+	^ superView application
     ].
     ^ nil
 
@@ -4189,7 +4192,7 @@
 
     controller := aController.
     controller notNil ifTrue:[
-        controller view:self.
+	controller view:self.
     ]
 
     "Modified: / 31.10.1997 / 19:58:33 / cg"
@@ -4207,7 +4210,7 @@
     "return the views sensor"
 
     windowGroup notNil ifTrue:[
-        ^ windowGroup sensor.
+	^ windowGroup sensor.
     ].
 
     "there is no window group. Deliver events synchronously"
@@ -4244,18 +4247,18 @@
      If I am currently in a group, remove me from it it."
 
     windowGroup notNil ifTrue:[
-        windowGroup removeView:self.
-        windowGroup := nil
+	windowGroup removeView:self.
+	windowGroup := nil
     ].
     windowGroup := newGroup.
     newGroup notNil ifTrue:[
-        newGroup addView:self.
+	newGroup addView:self.
 
     ].
     subViews notNil ifTrue:[
-        subViews do:[:aSubview |
-            aSubview windowGroup:newGroup
-        ]
+	subViews do:[:aSubview |
+	    aSubview windowGroup:newGroup
+	]
     ].
 
     "Modified: 20.8.1997 / 13:26:37 / cg"
@@ -4309,14 +4312,14 @@
 
     currentTransformation := gc transformation.
     currentTransformation isNil ifTrue:[
-        (aPoint x ~~ 0 or:[aPoint y ~~ 0]) ifTrue:[
-            gc transformation:(WindowingTransformation scale:1 translation:aPoint negated).
-        ].
+	(aPoint x ~~ 0 or:[aPoint y ~~ 0]) ifTrue:[
+	    gc transformation:(WindowingTransformation scale:1 translation:aPoint negated).
+	].
     ] ifFalse:[
-        currentTransformation translation:aPoint negated.
+	currentTransformation translation:aPoint negated.
     ].
     self clippingBoundsOrNil notNil ifTrue:[
-        self setInnerClip.
+	self setInnerClip.
     ].
 !
 
@@ -4329,7 +4332,7 @@
 
     currentTransformation := gc transformation.
     currentTransformation isNil ifTrue:[
-        ^ 0@0
+	^ 0@0
     ].
     ^ currentTransformation translation negated
 !
@@ -4343,10 +4346,10 @@
 
     currentTransformation := gc transformation.
     currentTransformation isNil ifTrue:[
-        ^ Rectangle left:0 top:0 width:width height:height.
+	^ Rectangle left:0 top:0 width:width height:height.
     ].
     ^ Rectangle origin:(currentTransformation translation negated)
-                extent:((width @ height) scaledBy:(currentTransformation scale)).
+		extent:((width @ height) scaledBy:(currentTransformation scale)).
 
     "Created: 12.7.1996 / 11:57:04 / stefan"
 !
@@ -4375,12 +4378,12 @@
 
     self hiddenOnRealize:true.
     realized ifTrue:[
-        (superView isNil              "/ I am a topView
-        or:[superView realized        "/ superview already shown
-        or:[superView id notNil]])     "/ superview already created
-            ifTrue:[
-                self unmap
-            ]
+	(superView isNil              "/ I am a topView
+	or:[superView realized        "/ superview already shown
+	or:[superView id notNil]])     "/ superview already created
+	    ifTrue:[
+		self unmap
+	    ]
     ]
 
     "Modified: 3.4.1997 / 21:20:40 / cg"
@@ -4398,22 +4401,22 @@
 
     self hiddenOnRealize:false.
     realized ifFalse:[
-        superView isNil ifTrue:[                "/ I am a topView
-            self drawableId isNil ifTrue:[
-                "this once was:
-                   self realize.
-                 but we don't want Topviews to realize implicitly.
-                 BTW. the code doesn't work anyway"
-            ] ifFalse:[
-                self remap.
-            ].
-        ] ifFalse:[
-            (superView realized          "/ superview already shown
-            or:[superView id notNil])    "/ superview already created
-            ifTrue:[
-                self realize
-            ]
-        ].
+	superView isNil ifTrue:[                "/ I am a topView
+	    self drawableId isNil ifTrue:[
+		"this once was:
+		   self realize.
+		 but we don't want Topviews to realize implicitly.
+		 BTW. the code doesn't work anyway"
+	    ] ifFalse:[
+		self remap.
+	    ].
+	] ifFalse:[
+	    (superView realized          "/ superview already shown
+	    or:[superView id notNil])    "/ superview already created
+	    ifTrue:[
+		self realize
+	    ]
+	].
     ]
 
     "
@@ -4489,11 +4492,10 @@
      to be made visible conditionally or later.
      For ST-80 compatibility, please use #beVisible / #beInvisible."
 
-    "/ hiddenOnRealize := aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagHiddenOnRealize
+	flagBits := flagBits bitOr:FlagHiddenOnRealize
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagHiddenOnRealize
+	flagBits := flagBits bitClear:FlagHiddenOnRealize
     ].
 
     "Modified: 17.6.1997 / 11:23:26 / cg"
@@ -4513,9 +4515,9 @@
      (especially in panels), which otherwise occur while subviews are removed."
 
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagBeingDestroyed
+	flagBits := flagBits bitOr:FlagBeingDestroyed
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagBeingDestroyed
+	flagBits := flagBits bitClear:FlagBeingDestroyed
     ].
 !
 
@@ -4537,8 +4539,8 @@
 
     v := self.
     [v notNil] whileTrue:[
-        v shown ifFalse:[^ false].
-        v := v container.
+	v shown ifFalse:[^ false].
+	v := v container.
     ].
     ^ true
 
@@ -4555,9 +4557,9 @@
     "make the view visible or invisible"
 
     aBoolean ifTrue:[
-        self beVisible
+	self beVisible
     ] ifFalse:[
-        self beInvisible
+	self beInvisible
     ]
 
     "Created: / 27.10.1997 / 04:23:04 / cg"
@@ -4663,12 +4665,12 @@
     |l wrapper|
 
     aComponentOrCollection isCollection ifTrue:[
-        wrapper := View new.
-        aComponentOrCollection do:[:aComponent |
-            wrapper add:aComponent
-        ]
+	wrapper := View new.
+	aComponentOrCollection do:[:aComponent |
+	    wrapper add:aComponent
+	]
     ] ifFalse:[
-        wrapper := aComponentOrCollection
+	wrapper := aComponentOrCollection
     ].
 
     l := aRectangleOrLayoutFrame asLayout.
@@ -4689,16 +4691,16 @@
      Dont use this right now for non-views"
 
     aComponent isView ifTrue:[
-        self addSubView:aComponent
+	self addSubView:aComponent
     ] ifFalse:[
-        components isNil ifTrue:[
-            components := OrderedCollection new
-        ].
-        components add:aComponent.
-        aComponent container:self.
-        shown ifTrue:[
-            aComponent displayOn:self
-        ]
+	components isNil ifTrue:[
+	    components := OrderedCollection new
+	].
+	components add:aComponent.
+	aComponent container:self.
+	shown ifTrue:[
+	    aComponent displayOn:self
+	]
     ]
 
     "Modified: 13.5.1996 / 21:19:51 / cg"
@@ -4708,13 +4710,13 @@
     "add a view to the collection of subviews"
 
     subViews isNil ifTrue:[
-        subViews := OrderedCollection with:newView
+	subViews := OrderedCollection with:newView
     ] ifFalse:[
-        (subViews includesIdentical:newView) ifTrue:[
-            self error:'trying to add a view twice' mayProceed:true.
-            ^ self.
-        ].
-        subViews add:newView.
+	(subViews includesIdentical:newView) ifTrue:[
+	    self error:'trying to add a view twice' mayProceed:true.
+	    ^ self.
+	].
+	subViews add:newView.
     ].
     self setContainerIn:newView.
 
@@ -4728,17 +4730,17 @@
      element at some defined place."
 
     subViews isNil ifTrue:[
-        subViews := OrderedCollection with:newView
+	subViews := OrderedCollection with:newView
     ] ifFalse:[
-        (subViews includesIdentical:newView) ifTrue:[
-            self error:'trying to add a view twice' mayProceed:true.
-            ^ self.
-        ].
-        aViewOrNil isNil ifTrue:[
-            subViews add:newView
-        ] ifFalse:[
-            subViews add:newView after:aViewOrNil.
-        ]
+	(subViews includesIdentical:newView) ifTrue:[
+	    self error:'trying to add a view twice' mayProceed:true.
+	    ^ self.
+	].
+	aViewOrNil isNil ifTrue:[
+	    subViews add:newView
+	] ifFalse:[
+	    subViews add:newView after:aViewOrNil.
+	]
     ].
     self setContainerIn:newView.
 
@@ -4753,17 +4755,17 @@
      element at some defined place."
 
     subViews isNil ifTrue:[
-        subViews := OrderedCollection with:newView
+	subViews := OrderedCollection with:newView
     ] ifFalse:[
-        (subViews includesIdentical:newView) ifTrue:[
-            self error:'trying to add a view twice' mayProceed:true.
-            ^ self.
-        ].
-        aViewOrNil isNil ifTrue:[
-            subViews addFirst:newView
-        ] ifFalse:[
-            subViews add:newView before:aViewOrNil.
-        ]
+	(subViews includesIdentical:newView) ifTrue:[
+	    self error:'trying to add a view twice' mayProceed:true.
+	    ^ self.
+	].
+	aViewOrNil isNil ifTrue:[
+	    subViews addFirst:newView
+	] ifFalse:[
+	    subViews add:newView before:aViewOrNil.
+	]
     ].
     self setContainerIn:newView.
 
@@ -4782,13 +4784,13 @@
     "add a view to the front of the collection of subviews"
 
     subViews isNil ifTrue:[
-        subViews := OrderedCollection with:newView
+	subViews := OrderedCollection with:newView
     ] ifFalse:[
-        (subViews includesIdentical:newView) ifTrue:[
-            self error:'trying to add a view twice' mayProceed:true.
-            ^ self.
-        ].
-        subViews addFirst:newView.
+	(subViews includesIdentical:newView) ifTrue:[
+	    self error:'trying to add a view twice' mayProceed:true.
+	    ^ self.
+	].
+	subViews addFirst:newView.
     ].
     self setContainerIn:newView.
 
@@ -4802,14 +4804,14 @@
 
     aComponent origin:0.0@0.0 corner:1.0@1.0.
     aComponent isView ifTrue:[
-        self addSubView:aComponent
+	self addSubView:aComponent
     ] ifFalse:[
-        components := OrderedCollection with:aComponent.
-        aComponent container:self.
-
-        shown ifTrue:[
-            aComponent displayOn:self
-        ]
+	components := OrderedCollection with:aComponent.
+	aComponent container:self.
+
+	shown ifTrue:[
+	    aComponent displayOn:self
+	]
     ]
 
     "Modified: 13.5.1996 / 21:20:29 / cg"
@@ -4819,22 +4821,22 @@
     "remove all subviews"
 
     subViews notNil ifTrue:[
-        subViews copy do:[:aSubView |
-            aSubView destroy.
-        ].
-
-        "/ paranoia ;-)
-        subViews size ~~ 0 ifTrue:[
-            (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
-            subViews := nil
-        ].
+	subViews copy do:[:aSubView |
+	    aSubView destroy.
+	].
+
+	"/ paranoia ;-)
+	subViews size ~~ 0 ifTrue:[
+	    (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
+	    subViews := nil
+	].
     ].
 
     components notNil ifTrue:[
-        components copy do:[:aComponent |
-            aComponent destroy.
-        ].
-        components := nil.
+	components copy do:[:aComponent |
+	    aComponent destroy.
+	].
+	components := nil.
     ]
 !
 
@@ -4843,11 +4845,11 @@
      Dont use this right now for non-views"
 
     aComponent isView ifTrue:[
-        self removeSubView:aComponent
+	self removeSubView:aComponent
     ] ifFalse:[
-        components isNil ifTrue:[^self].
-        components remove:aComponent ifAbsent:[].
-        aComponent container:nil
+	components isNil ifTrue:[^self].
+	components remove:aComponent ifAbsent:[].
+	aComponent container:nil
     ]
 
     "Modified: / 11-09-2006 / 17:14:30 / User"
@@ -4857,12 +4859,12 @@
     "remove a view from the collection of subviews"
 
     subViews notNil ifTrue:[
-        subViews remove:aView ifAbsent:[nil].
-        aView setContainer:nil.
-
-        (subViews size == 0) ifTrue:[
-            subViews := nil
-        ]
+	subViews remove:aView ifAbsent:[nil].
+	aView setContainer:nil.
+
+	(subViews size == 0) ifTrue:[
+	    subViews := nil
+	]
     ]
 !
 
@@ -4871,10 +4873,10 @@
 
     aView container:self.
     (aView graphicsDevice ~~ device) ifTrue:[
-        'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
-        ') has different device than me (' errorPrint.
-        self class name errorPrint. ').' errorPrintCR.
-        aView device:device
+	'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
+	') has different device than me (' errorPrint.
+	self class name errorPrint. ').' errorPrintCR.
+	aView device:device
     ].
 
     "Created: 9.5.1996 / 00:46:59 / cg"
@@ -4900,9 +4902,9 @@
     "an update request"
 
     aspect == #sizeOfView ifTrue:[
-        "one of the views we depend on changed its size"
-        "/ cg: #containerChangedSize has already been sent by the caller
-        ^ self "containerChangedSize".
+	"one of the views we depend on changed its size"
+	"/ cg: #containerChangedSize has already been sent by the caller
+	^ self "containerChangedSize".
     ].
     super update:aspect with:aParameter from:changedObject
 
@@ -4923,50 +4925,50 @@
 
     ok := true.
     bitmaps := #('wheel1' 'wheel2' 'wheel3' 'wheel4')
-               collect:[:name |
-                   |f|
-
-                   f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
-                   f isNil ifTrue:[
-                        ('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
-                        ok := false
-                   ].
-                   f
-               ].
+	       collect:[:name |
+		   |f|
+
+		   f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
+		   f isNil ifTrue:[
+			('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
+			ok := false
+		   ].
+		   f
+	       ].
 
     ok ifTrue:[
-        maskForm := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
-        maskForm isNil ifTrue:[
-            ('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
-            ok := false
-        ].
+	maskForm := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
+	maskForm isNil ifTrue:[
+	    ('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
+	    ok := false
+	].
     ].
 
     ok ifFalse:[
-        self cursor:Cursor wait.
-        aBlock ensure:[
-            self cursor:oldCursor
-        ]
+	self cursor:Cursor wait.
+	aBlock ensure:[
+	    self cursor:oldCursor
+	]
     ] ifTrue:[
-        cursors := bitmaps collect:[:form | (Cursor sourceForm:form
-                                                      maskForm:maskForm
-                                                          hotX:8
-                                                          hotY:8) onDevice:device].
-
-        process := [
-                    Delay waitForSeconds:0.25.
-                    [
-                        cursors do:[:curs |
-                            self cursor:curs.
-                            Delay waitForSeconds:0.05.
-                        ]
-                    ] loop.
-           ] forkAt:(Processor activeProcess priority + 1).
-
-        aBlock ensure:[
-            process terminate.
-            self cursor:oldCursor
-        ]
+	cursors := bitmaps collect:[:form | (Cursor sourceForm:form
+						      maskForm:maskForm
+							  hotX:8
+							  hotY:8) onDevice:device].
+
+	process := [
+		    Delay waitForSeconds:0.25.
+		    [
+			cursors do:[:curs |
+			    self cursor:curs.
+			    Delay waitForSeconds:0.05.
+			]
+		    ] loop.
+	   ] forkAt:(Processor activeProcess priority + 1).
+
+	aBlock ensure:[
+	    process terminate.
+	    self cursor:oldCursor
+	]
     ].
 
     "
@@ -4986,35 +4988,35 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps|
-
-        deps := dependents.
-        "/
-        "/ store the very first dependent directly in
-        "/ the dependents instVar
-        "/
-        (deps isNil and:[anObject isCollection not]) ifTrue:[
-            dependents := anObject
-        ] ifFalse:[
-            "/
-            "/ store more dependents in the dependents collection
-            "/
-            deps isCollection ifTrue:[
-                deps add:anObject
-            ] ifFalse:[
-                deps == anObject ifFalse:[
-                    deps isNil ifTrue:[
-                        dependents := (IdentitySet with:anObject)
-                    ] ifFalse:[
-                        dependents := (IdentitySet with:deps with:anObject)
-                    ]
-                ]
-            ]
-        ]
+	|deps|
+
+	deps := dependents.
+	"/
+	"/ store the very first dependent directly in
+	"/ the dependents instVar
+	"/
+	(deps isNil and:[anObject isCollection not]) ifTrue:[
+	    dependents := anObject
+	] ifFalse:[
+	    "/
+	    "/ store more dependents in the dependents collection
+	    "/
+	    deps isCollection ifTrue:[
+		deps add:anObject
+	    ] ifFalse:[
+		deps == anObject ifFalse:[
+		    deps isNil ifTrue:[
+			dependents := (IdentitySet with:anObject)
+		    ] ifFalse:[
+			dependents := (IdentitySet with:deps with:anObject)
+		    ]
+		]
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Modified: 8.1.1997 / 23:40:30 / cg"
@@ -5027,7 +5029,7 @@
 
     dependents isNil ifTrue:[^ #()].
     dependents isCollection ifTrue:[
-        ^ dependents
+	^ dependents
     ].
     ^ IdentitySet with:dependents
 
@@ -5042,11 +5044,11 @@
     |dep|
 
     aCollection size == 1 ifTrue:[
-        dep := aCollection first.
-        dep isCollection ifFalse:[
-            dependents := aCollection first.
-            ^ self
-        ]
+	dep := aCollection first.
+	dep isCollection ifFalse:[
+	    dependents := aCollection first.
+	    ^ self
+	]
     ].
     dependents := aCollection
 
@@ -5062,11 +5064,11 @@
 
     deps := dependents.
     deps notNil ifTrue:[
-        deps isCollection ifTrue:[
-            deps do:aBlock
-        ] ifFalse:[
-            aBlock value:deps
-        ]
+	deps isCollection ifTrue:[
+	    deps do:aBlock
+	] ifFalse:[
+	    aBlock value:deps
+	]
     ]
 
     "Created: 11.6.1997 / 13:10:51 / cg"
@@ -5084,31 +5086,31 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps sz dep|
-
-        deps := dependents.
-        deps notNil ifTrue:[
-            deps isCollection ifTrue:[
-                deps remove:anObject ifAbsent:[].
-                (sz := deps size) == 0 ifTrue:[
-                    dependents := nil
-                ] ifFalse:[
-                    sz == 1 ifTrue:[
-                        (dep := deps first) isCollection ifFalse:[
-                            dependents := dep
-                        ]
-                    ]
-                ]
-            ] ifFalse:[
-                deps == anObject ifTrue:[
-                    dependents := nil
-                ]
-            ]
-        ]
+	|deps sz dep|
+
+	deps := dependents.
+	deps notNil ifTrue:[
+	    deps isCollection ifTrue:[
+		deps remove:anObject ifAbsent:[].
+		(sz := deps size) == 0 ifTrue:[
+		    dependents := nil
+		] ifFalse:[
+		    sz == 1 ifTrue:[
+			(dep := deps first) isCollection ifFalse:[
+			    dependents := dep
+			]
+		    ]
+		]
+	    ] ifFalse:[
+		deps == anObject ifTrue:[
+		    dependents := nil
+		]
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Modified: 8.1.1997 / 23:41:39 / cg"
@@ -5264,11 +5266,11 @@
     "draw bottom 3D edge into window frame"
 
     self drawBottomEdgeLevel:level
-                      shadow:shadowColor
-                      light:lightColor
-                      halfShadow:nil
-                      halfLight:nil
-                      style:nil.
+		      shadow:shadowColor
+		      light:lightColor
+		      halfShadow:nil
+		      halfLight:nil
+		      style:nil.
 !
 
 drawBottomEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5280,28 +5282,28 @@
     count == 0 ifTrue:[^ self].
 
     (count < 0) ifTrue:[
-        botFg := lightColor.
-        count := count negated
+	botFg := lightColor.
+	count := count negated
     ] ifFalse:[
-        ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
-            botFg := halfShadowColor
-        ] ifFalse:[
-            botFg := shadowColor
-        ].
+	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
+	    botFg := halfShadowColor
+	] ifFalse:[
+	    botFg := shadowColor
+	].
     ].
     super paint:botFg.
     super lineWidth:0.
 
     r := width - 1.
     0 to:(count - 1) do:[:i |
-        b := height - 1 - i.
-        super displayDeviceLineFromX:i y:b toX:(r - i) y:b
+	b := height - 1 - i.
+	super displayDeviceLineFromX:i y:b toX:(r - i) y:b
     ].
 
     ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
-        b := height - 1.
-        super paint:shadowColor.
-        super displayDeviceLineFromX:1 y:b toX:r y:b.
+	b := height - 1.
+	super paint:shadowColor.
+	super displayDeviceLineFromX:1 y:b toX:r y:b.
     ].
 
     self edgeDrawn:#bottom.
@@ -5313,32 +5315,32 @@
     "draw all of my 3D edges"
 
     self drawEdgesForX:0 y:0 width:width height:height level:level
-                shadow:shadowColor
-                light:lightColor
-                halfShadow:nil
-                halfLight:nil
-                style:nil
+		shadow:shadowColor
+		light:lightColor
+		halfShadow:nil
+		halfLight:nil
+		style:nil
 !
 
 drawEdgesForX:x y:y width:w height:h level:l
     "draw 3D edges into a rectangle"
 
     self
-        drawEdgesForX:x y:y width:w height:h level:l
-        shadow:shadowColor light:lightColor
-        halfShadow:nil halfLight:nil
-        style:nil
+	drawEdgesForX:x y:y width:w height:h level:l
+	shadow:shadowColor light:lightColor
+	halfShadow:nil halfLight:nil
+	style:nil
 !
 
 drawLeftEdge
     "draw left 3D edge into window frame"
 
     self drawLeftEdgeLevel:level
-                    shadow:shadowColor
-                     light:lightColor
-                     halfShadow:nil
-                     halfLight:nil
-                     style:nil.
+		    shadow:shadowColor
+		     light:lightColor
+		     halfShadow:nil
+		     halfLight:nil
+		     style:nil.
 !
 
 drawLeftEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5349,33 +5351,33 @@
     count == 0 ifTrue:[^ self].
 
     (count < 0) ifTrue:[
-        leftFg := shadowColor.
-        leftHalfFg := halfShadowColor.
-        count := count negated.
+	leftFg := shadowColor.
+	leftHalfFg := halfShadowColor.
+	count := count negated.
     ] ifFalse:[
-        leftFg := lightColor.
-        leftHalfFg := halfLightColor.
+	leftFg := lightColor.
+	leftHalfFg := halfLightColor.
     ].
     leftHalfFg isNil ifTrue:[
-        leftHalfFg := leftFg
+	leftHalfFg := leftFg
     ].
 
     ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
-        paint := leftHalfFg
+	paint := leftHalfFg
     ] ifFalse:[
-        paint := leftFg
+	paint := leftFg
     ].
     super paint:paint.
     super lineWidth:0.
 
     b := height - 1.
     0 to:(count - 1) do:[:i |
-        super displayDeviceLineFromX:i y:i toX:i y:(b - i)
+	super displayDeviceLineFromX:i y:i toX:i y:(b - i)
     ].
 
     ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
-        super paint:(device blackColor).
-        super displayDeviceLineFromX:0 y:0 toX:0 y:b.
+	super paint:(device blackColor).
+	super displayDeviceLineFromX:0 y:0 toX:0 y:b.
     ].
 
     self edgeDrawn:#left.
@@ -5387,11 +5389,11 @@
     "draw right 3D edge into window frame"
 
     self drawRightEdgeLevel:level
-                     shadow:shadowColor
-                      light:lightColor
-                      halfShadow:nil
-                      halfLight:nil
-                      style:nil.
+		     shadow:shadowColor
+		      light:lightColor
+		      halfShadow:nil
+		      halfLight:nil
+		      style:nil.
 !
 
 drawRightEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5403,27 +5405,27 @@
     count == 0 ifTrue:[^ self].
 
     (count < 0) ifTrue:[
-        rightFg := lightColor.
-        count := count negated
+	rightFg := lightColor.
+	count := count negated
     ] ifFalse:[
-        ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
-            rightFg := halfShadowColor
-        ] ifFalse:[
-            rightFg := shadowColor
-        ].
+	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
+	    rightFg := halfShadowColor
+	] ifFalse:[
+	    rightFg := shadowColor
+	].
     ].
     super paint:rightFg.
     super lineWidth:0.
 
     b := height - 1.
     0 to:(count - 1) do:[:i |
-        r := width - 1 - i.
-        super displayDeviceLineFromX:r y:i toX:r y:(b - i)
+	r := width - 1 - i.
+	super displayDeviceLineFromX:r y:i toX:r y:(b - i)
     ].
     ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
-        r := width - 1.
-        super paint:shadowColor.
-        super displayDeviceLineFromX:r y:1 toX:r y:b.
+	r := width - 1.
+	super paint:shadowColor.
+	super displayDeviceLineFromX:r y:1 toX:r y:b.
     ].
 
     self edgeDrawn:#right.
@@ -5435,11 +5437,11 @@
     "draw top 3D edge into window frame"
 
     self drawTopEdgeLevel:level
-                   shadow:shadowColor
-                    light:lightColor
-                    halfShadow:nil
-                    halfLight:nil
-                    style:nil.
+		   shadow:shadowColor
+		    light:lightColor
+		    halfShadow:nil
+		    halfLight:nil
+		    style:nil.
 !
 
 drawTopEdgeLevel:level atY:y shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5450,32 +5452,32 @@
     count == 0 ifTrue:[^ self].
 
     (count < 0) ifTrue:[
-        topFg := shadowColor.
-        topHalfFg := halfShadowColor.
-        count := count negated
+	topFg := shadowColor.
+	topHalfFg := halfShadowColor.
+	count := count negated
     ] ifFalse:[
-        topFg := lightColor.
-        topHalfFg := halfLightColor.
+	topFg := lightColor.
+	topHalfFg := halfLightColor.
     ].
     topHalfFg isNil ifTrue:[
-        topHalfFg := topFg
+	topHalfFg := topFg
     ].
 
     ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
-        paint := topHalfFg
+	paint := topHalfFg
     ] ifFalse:[
-        paint := topFg
+	paint := topFg
     ].
     super paint:paint.
     super lineWidth:0.
 
     r := width - 1.
     0 to:(count - 1) do:[:i |
-        super displayDeviceLineFromX:i y:y+i toX:(r - i) y:y+i
+	super displayDeviceLineFromX:i y:y+i toX:(r - i) y:y+i
     ].
     ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
-        super paint:(device blackColor).
-        super displayDeviceLineFromX:0 y:y+0 toX:r y:y+0.
+	super paint:(device blackColor).
+	super displayDeviceLineFromX:0 y:y+0 toX:r y:y+0.
     ].
 
     self edgeDrawn:#top.
@@ -5495,32 +5497,32 @@
     count == 0 ifTrue:[^ self].
 
     (count < 0) ifTrue:[
-        topFg := shadowColor.
-        topHalfFg := halfShadowColor.
-        count := count negated
+	topFg := shadowColor.
+	topHalfFg := halfShadowColor.
+	count := count negated
     ] ifFalse:[
-        topFg := lightColor.
-        topHalfFg := halfLightColor.
+	topFg := lightColor.
+	topHalfFg := halfLightColor.
     ].
     topHalfFg isNil ifTrue:[
-        topHalfFg := topFg
+	topHalfFg := topFg
     ].
 
     ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
-        paint := topHalfFg
+	paint := topHalfFg
     ] ifFalse:[
-        paint := topFg
+	paint := topFg
     ].
     super paint:paint.
     super lineWidth:0.
 
     r := width - 1.
     0 to:(count - 1) do:[:i |
-        super displayDeviceLineFromX:i y:i toX:(r - i) y:i
+	super displayDeviceLineFromX:i y:i toX:(r - i) y:i
     ].
     ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
-        super paint:(device blackColor).
-        super displayDeviceLineFromX:0 y:0 toX:r y:0.
+	super paint:(device blackColor).
+	super displayDeviceLineFromX:0 y:0 toX:r y:0.
     ].
 
     self edgeDrawn:#top.
@@ -5532,11 +5534,11 @@
     "redraw my edges (if any)"
 
     (level ~~ 0) ifTrue:[
-        shown ifTrue:[
-            gc clippingBounds:nil.
-            self drawEdges.
-            gc deviceClippingBounds:innerClipRect
-        ]
+	shown ifTrue:[
+	    gc clippingBounds:nil.
+	    self drawEdges.
+	    gc deviceClippingBounds:innerClipRect
+	]
     ]
 
     "Modified: / 25.5.1999 / 14:50:25 / cg"
@@ -5549,13 +5551,13 @@
      If there is none, return the value from exceptionValue"
 
     subViews notNil ifTrue:[
-        subViews do:[:aSubview |
-            |v|
-
-            (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
-            v := aSubview allSubViewsDetect:aBlock ifNone:nil.
-            v notNil ifTrue:[^ v].
-        ]
+	subViews do:[:aSubview |
+	    |v|
+
+	    (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
+	    v := aSubview allSubViewsDetect:aBlock ifNone:nil.
+	    v notNil ifTrue:[^ v].
+	]
     ].
     ^ exceptionValue value.
 
@@ -5566,9 +5568,9 @@
     "evaluate aBlock for all subviews (recursively)"
 
     subViews notNil ifTrue:[
-        subViews do:[:aSubview |
-            aSubview withAllSubViewsDo:aBlock
-        ]
+	subViews do:[:aSubview |
+	    aSubview withAllSubViewsDo:aBlock
+	]
     ]
 
     "Modified: 12.2.1997 / 12:23:38 / cg"
@@ -5582,8 +5584,8 @@
 
     v := self container.
     [v notNil] whileTrue:[
-        (aBlock value:v) ifTrue:[^ v].
-        v := v container.
+	(aBlock value:v) ifTrue:[^ v].
+	v := v container.
     ].
     ^ exceptionValue value
 !
@@ -5595,8 +5597,8 @@
 
     v := self container.
     [v notNil] whileTrue:[
-        aBlock value:v.
-        v := v container.
+	aBlock value:v.
+	v := v container.
     ].
 !
 
@@ -5604,15 +5606,15 @@
     "find a visible subview for which aBlock returns true (recursively)"
 
     subViews notNil ifTrue:[
-        subViews do:[:aSubview |
-            |v|
-
-            aSubview shown ifTrue:[
-                (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
-                v := aSubview allVisibleSubViewsDetect:aBlock ifNone:nil.
-                v notNil ifTrue:[^ v].
-            ].
-        ]
+	subViews do:[:aSubview |
+	    |v|
+
+	    aSubview shown ifTrue:[
+		(aBlock value:aSubview) ifTrue:[ ^ aSubview ].
+		v := aSubview allVisibleSubViewsDetect:aBlock ifNone:nil.
+		v notNil ifTrue:[^ v].
+	    ].
+	]
     ].
     ^ exceptionBlock value.
 !
@@ -5623,7 +5625,7 @@
      unless they overlap. In that case, the later view is placed above the earlier."
 
     aSubViewOrComponent isView ifFalse:[
-        ^ self changeSequenceOrderForComponent:aSubViewOrComponent to:anIndex
+	^ self changeSequenceOrderForComponent:aSubViewOrComponent to:anIndex
     ].
     ^ self changeSequenceOrderForView:aSubViewOrComponent to:anIndex
 !
@@ -5635,11 +5637,11 @@
     |removedComponent|
 
     (components notNil and:[components size >= anIndex]) ifTrue:[
-        removedComponent := components remove:aComponent ifAbsent:nil.
-        removedComponent notNil ifTrue:[
-            components add:removedComponent beforeIndex:anIndex.
-            ^ true
-        ]
+	removedComponent := components remove:aComponent ifAbsent:nil.
+	removedComponent notNil ifTrue:[
+	    components add:removedComponent beforeIndex:anIndex.
+	    ^ true
+	]
     ].
     ^ false
 !
@@ -5652,11 +5654,11 @@
     |removedView|
 
     (subViews notNil and:[subViews size >= anIndex]) ifTrue:[
-        removedView := subViews remove:aSubView ifAbsent:nil.
-        removedView notNil ifTrue:[
-            subViews add:removedView beforeIndex:anIndex.
-            ^ true
-        ]
+	removedView := subViews remove:aSubView ifAbsent:nil.
+	removedView notNil ifTrue:[
+	    subViews add:removedView beforeIndex:anIndex.
+	    ^ true
+	]
     ].
     ^ false
 !
@@ -5681,35 +5683,35 @@
     "/ how comes ? And what should be done to avoid this ?
 
     checkForAnyNonExisting :=
-        [
-            anyNonExisting := false.
-            aCollectionOfDropObjects do:[:eachDropObject |
-                eachDropObject isFileObject ifTrue:[
-                    eachDropObject isDirectory ifFalse:[
-                        eachDropObject theObject asFilename exists ifFalse:[
-                            anyNonExisting := true.
-                            whichNonExisting := eachDropObject theObject asFilename.
-                        ]
-                    ]
-                ].
-            ].
-            anyNonExisting
-        ].
+	[
+	    anyNonExisting := false.
+	    aCollectionOfDropObjects do:[:eachDropObject |
+		eachDropObject isFileObject ifTrue:[
+		    eachDropObject isDirectory ifFalse:[
+			eachDropObject theObject asFilename exists ifFalse:[
+			    anyNonExisting := true.
+			    whichNonExisting := eachDropObject theObject asFilename.
+			]
+		    ]
+		].
+	    ].
+	    anyNonExisting
+	].
 
     self withWaitCursorDo:[
-        tDelayed := 0.
-        checkForAnyNonExisting doWhile:[
-            anyNonExisting ifTrue:[
-                Delay waitForSeconds:0.3.
-                tDelayed := tDelayed + 0.3.
-            ].
-            anyNonExisting and:[ tDelayed <= 3].
-        ].
+	tDelayed := 0.
+	checkForAnyNonExisting doWhile:[
+	    anyNonExisting ifTrue:[
+		Delay waitForSeconds:0.3.
+		tDelayed := tDelayed + 0.3.
+	    ].
+	    anyNonExisting and:[ tDelayed <= 3].
+	].
     ].
 
     (anyNonExisting and:[checkForAnyNonExisting value]) ifTrue:[
-        Dialog warn:('Dropfile not present: %1' bindWith:whichNonExisting pathName).
-        ^ self
+	Dialog warn:('Dropfile not present: %1' bindWith:whichNonExisting pathName).
+	^ self
     ].
 
     view := self.
@@ -5717,32 +5719,32 @@
 
     app := view application.
     app notNil ifTrue:[
-        (app canDropObjects:aCollectionOfDropObjects in:view at:positionInView) ifTrue:[
-            app dropObjects:aCollectionOfDropObjects in:view at:positionInView.
-            ^ self.
-        ].
+	(app canDropObjects:aCollectionOfDropObjects in:view at:positionInView) ifTrue:[
+	    app dropObjects:aCollectionOfDropObjects in:view at:positionInView.
+	    ^ self.
+	].
     ].
 
     [view notNil] whileTrue:[
-        "new mechanism to get a dropTarget"
-        target := view dropTarget.
-        target notNil ifTrue:[
-            dropContext := DropContext new.
-            dropContext dropObjects:aCollectionOfDropObjects.
-            dropContext dropTarget:target.
-
-            (target canDrop:dropContext) ifTrue:[
-                target drop:dropContext.
-                ^ self.
-            ].
-        ].
-
-        (view canDropObjects:aCollectionOfDropObjects at:positionInView) ifTrue:[
-            view dropObjects:aCollectionOfDropObjects at:positionInView.
-            ^ self.
-        ].
-        view := view superView.
-        positionInView := nil.
+	"new mechanism to get a dropTarget"
+	target := view dropTarget.
+	target notNil ifTrue:[
+	    dropContext := DropContext new.
+	    dropContext dropObjects:aCollectionOfDropObjects.
+	    dropContext dropTarget:target.
+
+	    (target canDrop:dropContext) ifTrue:[
+		target drop:dropContext.
+		^ self.
+	    ].
+	].
+
+	(view canDropObjects:aCollectionOfDropObjects at:positionInView) ifTrue:[
+	    view dropObjects:aCollectionOfDropObjects at:positionInView.
+	    ^ self.
+	].
+	view := view superView.
+	positionInView := nil.
     ]
 
     "Modified: / 17-10-2006 / 18:00:46 / cg"
@@ -5752,8 +5754,8 @@
     "button was moved"
 
     self topView == TopView currentWindowBeingMoved ifTrue:[
-        self topView doWindowMove.
-        ^ self.
+	self topView doWindowMove.
+	^ self.
     ].
 
     "Created: / 03-03-2011 / 19:11:11 / cg"
@@ -5763,10 +5765,10 @@
     "button was pressed quickly again - check my components for a hit."
 
     components notNil ifTrue:[
-        self componentsContainingX:x y:y do:[:comp :cx :cy |
-            comp buttonMultiPress:button x:cx y:cy.
-            ^ self
-        ]
+	self componentsContainingX:x y:y do:[:comp :cx :cy |
+	    comp buttonMultiPress:button x:cx y:cy.
+	    ^ self
+	]
     ].
 
     super buttonMultiPress:button x:x y:y
@@ -5781,16 +5783,16 @@
     |topView|
 
     components notNil ifTrue:[
-        self componentsContainingX:x y:y do:[:comp :cx :cy |
-            comp buttonPress:button x:cx y:cy.
-            ^ self
-        ]
+	self componentsContainingX:x y:y do:[:comp :cx :cy |
+	    comp buttonPress:button x:cx y:cy.
+	    ^ self
+	]
     ].
 
     "/ an undecorated (but modeless) topView -> do a window move
     (topView := self topView) startWindowMoveOnButtonPress ifTrue:[
-        topView startWindowMove.
-        ^ self.
+	topView startWindowMove.
+	^ self.
     ].
 
     super buttonPress:button x:x y:y
@@ -5802,15 +5804,15 @@
     "button was released - check my components for a hit."
 
     components notNil ifTrue:[
-        self componentsContainingX:x y:y do:[:comp :cx :cy |
-            comp buttonRelease:button x:cx y:cy.
-            ^ self
-        ]
+	self componentsContainingX:x y:y do:[:comp :cx :cy |
+	    comp buttonRelease:button x:cx y:cy.
+	    ^ self
+	]
     ].
 
     self topView == TopView currentWindowBeingMoved ifTrue:[
-        self topView endWindowMove.
-        ^ self.
+	self topView endWindowMove.
+	^ self.
     ].
 
     super buttonRelease:button x:x y:y
@@ -5826,9 +5828,9 @@
     |oldScale newScale factor|
 
     amount > 0 ifTrue:[
-        factor := 1.2.
+	factor := 1.2.
     ] ifFalse:[
-        factor := 0.8.
+	factor := 0.8.
     ].
     oldScale := self scale.
     newScale := (oldScale * factor) max:0.1.
@@ -5843,7 +5845,7 @@
     |app|
 
     (app := self application) notNil ifTrue:[
-        app clientMessage:msgType format:msgFormat eventData:msgData
+	app clientMessage:msgType format:msgFormat eventData:msgData
     ].
 !
 
@@ -5868,74 +5870,74 @@
 
     (superView isNil
     and:[self drawableId notNil]) ifTrue:[
-        "/ have to be careful - some window managers (motif) wrap another
-        "/ view around and the reported origin is relative to that.
-        "/ not relative to the screen.
-        p := device translatePoint:0@0 fromView:self toView:nil.
-        p := p + self borderWidth.
-        left := p x.
-        top := p y.
+	"/ have to be careful - some window managers (motif) wrap another
+	"/ view around and the reported origin is relative to that.
+	"/ not relative to the screen.
+	p := device translatePoint:0@0 fromView:self toView:nil.
+	p := p + self borderWidth.
+	left := p x.
+	top := p y.
     ].
 
     ((width ~~ newWidth) or:[height ~~ newHeight]) ifTrue:[
-        realized ifFalse:[
-            width := newWidth.
-            height := newHeight.
-            self extentChangedFlag:true.
-            ^ self
-        ].
-
-        ((newWidth <= width) and:[newHeight <= height]) ifTrue:[
-            how := #smaller
-        ] ifFalse:[
-            ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
-                how := #larger
-            ]
-        ].
-
-        margin ~~ 0 ifTrue:[
-            mustRedrawBottomEdge := newHeight < height.
-            mustRedrawRightEdge := newWidth < width.
-            anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge].
-
-            mustRedrawPreviousRightBorderArea := newWidth > width.
-            mustRedrawPreviousBottomBorderArea := newHeight > height.
-        ] ifFalse:[
-            anyEdge := mustRedrawPreviousRightBorderArea := mustRedrawPreviousBottomBorderArea := false
-        ].
-
-        mustRedrawPreviousRightBorderArea ifTrue:[
-            self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
-        ].
-        mustRedrawPreviousBottomBorderArea ifTrue:[
-            self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
-        ].
-
-        width := newWidth.
-        height := newHeight.
-
-        "recompute inner-clip if needed"
-        self setInnerClip.
-
-        "
-         must first process pending exposes;
-         otherwise, those may be drawn at a wrong position
-        "
+	realized ifFalse:[
+	    width := newWidth.
+	    height := newHeight.
+	    self extentChangedFlag:true.
+	    ^ self
+	].
+
+	((newWidth <= width) and:[newHeight <= height]) ifTrue:[
+	    how := #smaller
+	] ifFalse:[
+	    ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
+		how := #larger
+	    ]
+	].
+
+	margin ~~ 0 ifTrue:[
+	    mustRedrawBottomEdge := newHeight < height.
+	    mustRedrawRightEdge := newWidth < width.
+	    anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge].
+
+	    mustRedrawPreviousRightBorderArea := newWidth > width.
+	    mustRedrawPreviousBottomBorderArea := newHeight > height.
+	] ifFalse:[
+	    anyEdge := mustRedrawPreviousRightBorderArea := mustRedrawPreviousBottomBorderArea := false
+	].
+
+	mustRedrawPreviousRightBorderArea ifTrue:[
+	    self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
+	].
+	mustRedrawPreviousBottomBorderArea ifTrue:[
+	    self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
+	].
+
+	width := newWidth.
+	height := newHeight.
+
+	"recompute inner-clip if needed"
+	self setInnerClip.
+
+	"
+	 must first process pending exposes;
+	 otherwise, those may be drawn at a wrong position
+	"
 "/ claus: no; expose events are in the same queue as configure events;
 "/        which is exactly for that reason ...
 
 "/        windowGroup notNil ifTrue:[
 "/            windowGroup processExposeEvents
 "/        ].
-        self sizeChanged:how.
-
-        (anyEdge and:[shown]) ifTrue:[
-            mustRedrawBottomEdge ifTrue:[
-                self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
-            ].
-            mustRedrawRightEdge ifTrue:[
-                self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
-            ].
+	self sizeChanged:how.
+
+	(anyEdge and:[shown]) ifTrue:[
+	    mustRedrawBottomEdge ifTrue:[
+		self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
+	    ].
+	    mustRedrawRightEdge ifTrue:[
+		self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
+	    ].
 "/ OLD code:
 "/            self clippingRectangle:nil.
 "/            mustRedrawBottomEdge ifTrue:[
@@ -5945,11 +5947,11 @@
 "/                self drawRightEdge
 "/            ].
 "/            self deviceClippingRectangle:innerClipRect
-        ]
+	]
     ].
 
     originChanged ifTrue:[
-        dependents notNil ifTrue:[ self changed:#origin ].
+	dependents notNil ifTrue:[ self changed:#origin ].
     ].
 
     "Modified: / 10.10.2001 / 14:14:19 / cg"
@@ -5970,20 +5972,20 @@
      slowly migrating to use layoutObjects ...
     "
     layout isNil ifTrue:[
-        newOrg := self computeOrigin.
-        newExt := self computeExtent.
+	newOrg := self computeOrigin.
+	newExt := self computeExtent.
     ] ifFalse:[layout isAssociation ifTrue:[
-        layout key == #extent ifTrue:[
-            newOrg := 1@1.
-            newExt := layout value.
-        ] ifFalse:[
-            self shouldImplement.
-        ].
+	layout key == #extent ifTrue:[
+	    newOrg := 1@1.
+	    newExt := layout value.
+	] ifFalse:[
+	    self shouldImplement.
+	].
     ] ifFalse:[
-        r := (layout rectangleRelativeTo:(superView viewRectangle)
-                               preferred:[self preferredBounds]).
-        newOrg := r origin rounded.
-        newExt := r extent rounded.
+	r := (layout rectangleRelativeTo:(superView viewRectangle)
+			       preferred:[self preferredBounds]).
+	newOrg := r origin rounded.
+	newExt := r extent rounded.
 "/ newOrg printCR.
 "/ newExt printCR.
     ]].
@@ -6024,7 +6026,7 @@
     "/ my subviews (they remember this in the shown instVar)
 
     realized ifTrue:[
-        shown ifFalse:[
+	shown ifFalse:[
 "/ old:
 "/            shown := true.
 "/            subViews notNil ifTrue:[
@@ -6034,8 +6036,8 @@
 "/            ]
 
 "/ which is equivalent to:
-            self mapped.
-        ]
+	    self mapped.
+	]
     ].
 
     "Modified: 30.5.1996 / 11:41:02 / cg"
@@ -6050,9 +6052,9 @@
     "/ my subviews (they remember this in the shown instVar)
 
     realized ifTrue:[
-        shown ifTrue:[
-            self unmapped
-        ]
+	shown ifTrue:[
+	    self unmapped
+	]
     ]
 
     "Modified: 30.5.1996 / 11:41:25 / cg"
@@ -6066,7 +6068,7 @@
     |app|
 
     (app := self application) notNil ifTrue:[
-        app copyDataEvent:parameter eventData:msgData
+	app copyDataEvent:parameter eventData:msgData
     ].
 !
 
@@ -6087,11 +6089,11 @@
     "view has been destroyed by someone else (usually window system)"
 
     shown ifTrue:[
-        shown := false.
-        dependents notNil ifTrue:[
-            self changed:#visibility.
-            self changed:#destroyed
-        ].
+	shown := false.
+	dependents notNil ifTrue:[
+	    self changed:#visibility.
+	    self changed:#destroyed
+	].
     ].
     super destroyed
 
@@ -6106,17 +6108,17 @@
 
     (dropTypeSymbol == WindowEvent dropType_file
     or:[dropTypeSymbol == WindowEvent dropType_directory]) ifTrue:[
-        dropObjects := Array with:(DropObject newFile:dropValue)
+	dropObjects := Array with:(DropObject newFile:dropValue)
     ] ifFalse:[
-        dropTypeSymbol == WindowEvent dropType_files ifTrue:[
-           dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
-        ] ifFalse:[
-            dropTypeSymbol == WindowEvent dropType_text ifTrue:[
-               dropObjects := Array with:(DropObject newText:dropValue)
-            ] ifFalse:[
-               dropObjects := Array with:(DropObject new:dropValue)
-            ]
-        ]
+	dropTypeSymbol == WindowEvent dropType_files ifTrue:[
+	   dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
+	] ifFalse:[
+	    dropTypeSymbol == WindowEvent dropType_text ifTrue:[
+	       dropObjects := Array with:(DropObject newText:dropValue)
+	    ] ifFalse:[
+	       dropObjects := Array with:(DropObject new:dropValue)
+	    ]
+	]
     ].
 
 "/    Transcript showCR:'Drop:'.
@@ -6137,7 +6139,7 @@
     |leftEdge topEdge rightEdge botEdge anyEdge nx ny nw nh old oldPaint|
 
     shown ifFalse:[
-        ^ self
+	^ self
     ].
 
     nw := w.
@@ -6151,110 +6153,110 @@
      check if there is a need to draw an edge (i.e. if margin is hit)
     "
     (margin ~~ 0) ifTrue:[
-        |currentTransformation|
-
-        leftEdge := false.
-        topEdge := false.
-        rightEdge := false.
-        botEdge := false.
-        currentTransformation := gc transformation.
-        currentTransformation notNil ifTrue:[
-            "
-             need device coordinates for this test
-            "
-            nx := currentTransformation applyToX:nx.
-            ny := currentTransformation applyToY:ny.
-            nw := currentTransformation applyScaleX:nw.
-            nh := currentTransformation applyScaleY:nh.
-        ].
-        "
-         adjust expose rectangle, to exclude the margin.
-         Care for rounding errors ...
-        "
-        (nx class ~~ SmallInteger) ifTrue:[
-            old := nx.
-            nx := nx truncated.
-            nw := nw + (nx - old).
-        ].
-        (ny class ~~ SmallInteger) ifTrue:[
-            old := ny.
-            ny := ny truncated.
-            nh := nh + (ny - old).
-        ].
-        (nw class ~~ SmallInteger) ifTrue:[
-            nw := nw truncated + 1
-        ].
-        (nh class ~~ SmallInteger) ifTrue:[
-            nh := nh truncated + 1
-        ].
-
-        (nx < margin) ifTrue:[
-            old := nx.
-            nx := margin.
-            nw := nw - (nx - old).
-            leftEdge := anyEdge := true.
-        ].
-        ((nx + nw - 1) >= (width - margin)) ifTrue:[
-            nw := (width - margin - nx).
-            rightEdge := anyEdge := true.
-        ].
-        (ny < margin) ifTrue:[
-            old := ny.
-            ny := margin.
-            nh := nh - (ny - old).
-            topEdge := anyEdge := true.
-        ].
-        ((ny + nh - 1) >= (height - margin)) ifTrue:[
-            nh := (height - margin - ny).
-            botEdge := anyEdge := true.
-        ].
-        currentTransformation notNil ifTrue:[
-            "
-             need logical coordinates for redraw
-            "
-            nx := currentTransformation applyInverseToX:nx.
-            ny := currentTransformation applyInverseToY:ny.
-            nw := currentTransformation applyInverseScaleX:nw.
-            nh := currentTransformation applyInverseScaleY:nh.
-        ].
+	|currentTransformation|
+
+	leftEdge := false.
+	topEdge := false.
+	rightEdge := false.
+	botEdge := false.
+	currentTransformation := gc transformation.
+	currentTransformation notNil ifTrue:[
+	    "
+	     need device coordinates for this test
+	    "
+	    nx := currentTransformation applyToX:nx.
+	    ny := currentTransformation applyToY:ny.
+	    nw := currentTransformation applyScaleX:nw.
+	    nh := currentTransformation applyScaleY:nh.
+	].
+	"
+	 adjust expose rectangle, to exclude the margin.
+	 Care for rounding errors ...
+	"
+	(nx class ~~ SmallInteger) ifTrue:[
+	    old := nx.
+	    nx := nx truncated.
+	    nw := nw + (nx - old).
+	].
+	(ny class ~~ SmallInteger) ifTrue:[
+	    old := ny.
+	    ny := ny truncated.
+	    nh := nh + (ny - old).
+	].
+	(nw class ~~ SmallInteger) ifTrue:[
+	    nw := nw truncated + 1
+	].
+	(nh class ~~ SmallInteger) ifTrue:[
+	    nh := nh truncated + 1
+	].
+
+	(nx < margin) ifTrue:[
+	    old := nx.
+	    nx := margin.
+	    nw := nw - (nx - old).
+	    leftEdge := anyEdge := true.
+	].
+	((nx + nw - 1) >= (width - margin)) ifTrue:[
+	    nw := (width - margin - nx).
+	    rightEdge := anyEdge := true.
+	].
+	(ny < margin) ifTrue:[
+	    old := ny.
+	    ny := margin.
+	    nh := nh - (ny - old).
+	    topEdge := anyEdge := true.
+	].
+	((ny + nh - 1) >= (height - margin)) ifTrue:[
+	    nh := (height - margin - ny).
+	    botEdge := anyEdge := true.
+	].
+	currentTransformation notNil ifTrue:[
+	    "
+	     need logical coordinates for redraw
+	    "
+	    nx := currentTransformation applyInverseToX:nx.
+	    ny := currentTransformation applyInverseToY:ny.
+	    nw := currentTransformation applyInverseScaleX:nw.
+	    nh := currentTransformation applyInverseScaleY:nh.
+	].
     ].
 
     (nw > 0 and:[nh > 0]) ifTrue:[
-        "
-         redraw inside area
-        "
-        self
-            clippingBounds:(Rectangle left:nx top:ny width:nw height:nh);
-            redrawX:nx y:ny width:nw height:nh.
+	"
+	 redraw inside area
+	"
+	self
+	    clippingBounds:(Rectangle left:nx top:ny width:nw height:nh);
+	    redrawX:nx y:ny width:nw height:nh.
     ].
 
     "
      redraw edge(s)
     "
     anyEdge ifTrue:[
-        self clippingBounds:nil.
-        oldPaint := self paint.
-        border notNil ifTrue:[
-            border displayOn:self forDisplayBox:(Rectangle left:0 top:0 width:width height:height).
-        ] ifFalse:[
-            (topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
-                self drawEdges
-            ] ifFalse:[
-                topEdge ifTrue:[
-                    self drawTopEdge
-                ].
-                leftEdge ifTrue:[
-                    self drawLeftEdge
-                ].
-                botEdge ifTrue:[
-                    self drawBottomEdge
-                ].
-                rightEdge ifTrue:[
-                    self drawRightEdge
-                ]
-            ].
-        ].
-        self paint:oldPaint.
+	self clippingBounds:nil.
+	oldPaint := self paint.
+	border notNil ifTrue:[
+	    border displayOn:self forDisplayBox:(Rectangle left:0 top:0 width:width height:height).
+	] ifFalse:[
+	    (topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
+		self drawEdges
+	    ] ifFalse:[
+		topEdge ifTrue:[
+		    self drawTopEdge
+		].
+		leftEdge ifTrue:[
+		    self drawLeftEdge
+		].
+		botEdge ifTrue:[
+		    self drawBottomEdge
+		].
+		rightEdge ifTrue:[
+		    self drawRightEdge
+		]
+	    ].
+	].
+	self paint:oldPaint.
     ].
     gc deviceClippingBounds:innerClipRect.
 
@@ -6277,7 +6279,7 @@
     "notification from the windowGroup that I got the keyboardFocus."
 
     delegate notNil ifTrue:[
-        delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
+	delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
     ].
     ^ self
 !
@@ -6292,44 +6294,44 @@
     |focusView|
 
     components notNil ifTrue:[
-        components notNil ifTrue:[
-            self componentsContainingX:x y:y do:[:comp :cx :cy |
-                comp keyPress:key x:cx y:cy.
-                ^ self
-            ]
-        ].
+	components notNil ifTrue:[
+	    self componentsContainingX:x y:y do:[:comp :cx :cy |
+		comp keyPress:key x:cx y:cy.
+		^ self
+	    ]
+	].
     ].
 
     key == #Menu ifTrue:[
-        ((focusView := self windowGroup focusView) notNil
-        and:[focusView ~~ self])
-        ifTrue:[
-           "/ forward to the focusView
-           focusView keyPress:key x:-1 y:-1.
-            ^ self
-        ].
-        ^ self activateMenu.
+	((focusView := self windowGroup focusView) notNil
+	and:[focusView ~~ self])
+	ifTrue:[
+	   "/ forward to the focusView
+	   focusView keyPress:key x:-1 y:-1.
+	    ^ self
+	].
+	^ self activateMenu.
     ].
 
     x isNil ifTrue:[
-        "/ already redelegated, but nowhere handled
-        superView notNil ifTrue:[
-            superView keyPress:key x:nil y:nil.
-        ].
-        ^ self
+	"/ already redelegated, but nowhere handled
+	superView notNil ifTrue:[
+	    superView keyPress:key x:nil y:nil.
+	].
+	^ self
     ].
 
     superView notNil ifTrue:[
-        superView
-            dispatchEvent:#keyPress:x:y:
-            arguments:(Array with:key with:0 with:0)
+	superView
+	    dispatchEvent:#keyPress:x:y:
+	    arguments:(Array with:key with:0 with:0)
 
 "/        WindowEvent
 "/            sendEvent:#keyPress:x:y:
 "/            arguments:(Array with:key with:0 with:0)
 "/            view:superView
     ] ifFalse:[
-        super keyPress:key x:x y:y
+	super keyPress:key x:x y:y
     ]
 
     "Modified: / 20.5.1998 / 22:55:08 / cg"
@@ -6341,12 +6343,12 @@
      Otherwise, do whatever my superclass would do."
 
     components notNil ifTrue:[
-        components notNil ifTrue:[
-            self componentsContainingX:x y:y do:[:comp :cx :cy |
-                comp keyRelease:key x:cx y:cy.
-                ^ self
-            ]
-        ].
+	components notNil ifTrue:[
+	    self componentsContainingX:x y:y do:[:comp :cx :cy |
+		comp keyRelease:key x:cx y:cy.
+		^ self
+	    ]
+	].
     ].
 
     super keyRelease:key x:x y:y
@@ -6371,9 +6373,9 @@
     "
      the old code was:
 
-        realized := true.
-        shown := true.
-        ...
+	realized := true.
+	shown := true.
+	...
 
      this created a race condition, if the view was
      realized and shortly after unrealized - before the mapped event
@@ -6383,41 +6385,41 @@
     "
 
     realized ifTrue:[
-        shownBefore := shown.
-
-        "/ currently, the 'shown ifFalse:' optimization is
-        "/ not ok, since 'shown' is also modified by visibilityChanges.
-        "/ Also, when remapped, X11 only sends a mapped event for the topView.
-        "/ Therefore, synthetically generate those #superViewMapped messages
-        "/ in any case.
-
-        shown := true.
-        "
-         backed views will not get expose events - have
-         to force a redraw here to get things drawn into
-         backing store.
-        "
-        backed ifTrue:[
-            self redrawX:0 y:0 width:width height:height
-        ].
-
-        "/ tell my subViews ...
-        subViews notNil ifTrue:[
-            subViews do:[:v |
+	shownBefore := shown.
+
+	"/ currently, the 'shown ifFalse:' optimization is
+	"/ not ok, since 'shown' is also modified by visibilityChanges.
+	"/ Also, when remapped, X11 only sends a mapped event for the topView.
+	"/ Therefore, synthetically generate those #superViewMapped messages
+	"/ in any case.
+
+	shown := true.
+	"
+	 backed views will not get expose events - have
+	 to force a redraw here to get things drawn into
+	 backing store.
+	"
+	backed ifTrue:[
+	    self redrawX:0 y:0 width:width height:height
+	].
+
+	"/ tell my subViews ...
+	subViews notNil ifTrue:[
+	    subViews do:[:v |
 "/                v shown ifFalse:[
-                    v  mapped.
+		    v  mapped.
 "/                ]
-            ]
-        ].
-        shownBefore ~~ true ifTrue:[
-            dependents notNil ifTrue:[ self changed:#visibility ].
-        ].
-        self takeFocusWhenMapped ifTrue:[
-            "/ this is a one-shot!!
-            self takeFocusWhenMapped:false.
-            self assignKeyboardFocusToFirstKeyboardConsumer.
-            "/ self requestFocus
-        ].
+	    ]
+	].
+	shownBefore ~~ true ifTrue:[
+	    dependents notNil ifTrue:[ self changed:#visibility ].
+	].
+	self takeFocusWhenMapped ifTrue:[
+	    "/ this is a one-shot!!
+	    self takeFocusWhenMapped:false.
+	    self assignKeyboardFocusToFirstKeyboardConsumer.
+	    "/ self requestFocus
+	].
     ]
 
     "Modified: / 09-12-2010 / 18:12:24 / cg"
@@ -6437,39 +6439,39 @@
     sensor := self sensor.
 
     UserPreferences current allowMouseWheelZoom ifTrue:[
-        zoomInOrOut := sensor ctrlDown or:[sensor metaDown].
-        zoomInOrOut ifTrue:[
-            self mouseWheelZoom:amount.
-            ^ self.
-        ].
+	zoomInOrOut := sensor ctrlDown or:[sensor metaDown].
+	zoomInOrOut ifTrue:[
+	    self mouseWheelZoom:amount.
+	    ^ self.
+	].
     ].
 
     horizontal := pageScroll := false.
     (UserPreferences current shiftMouseWheelScrollsHorizontally) ifTrue:[
-        horizontal := sensor shiftDown
+	horizontal := sensor shiftDown
     ] ifFalse:[
-        pageScroll := sensor shiftDown.
+	pageScroll := sensor shiftDown.
     ].
 
     pageScroll ifFalse:[
-        amountToScroll := horizontal
-                            ifTrue:[ self horizontalScrollStep]
-                            ifFalse:[ self verticalScrollStep ].
-        amountToScroll := self scaleMouseWheelScrollAmount:amountToScroll.
+	amountToScroll := horizontal
+			    ifTrue:[ self horizontalScrollStep]
+			    ifFalse:[ self verticalScrollStep ].
+	amountToScroll := self scaleMouseWheelScrollAmount:amountToScroll.
     ].
 
     amount > 0 ifTrue:[
-        pageScroll ifTrue:[
-            horizontal ifTrue:[self pageLeft] ifFalse:[self pageUp]
-        ] ifFalse:[
-            horizontal ifTrue:[self scrollLeft:amountToScroll] ifFalse:[self scrollUp:amountToScroll]
-        ]
+	pageScroll ifTrue:[
+	    horizontal ifTrue:[self pageLeft] ifFalse:[self pageUp]
+	] ifFalse:[
+	    horizontal ifTrue:[self scrollLeft:amountToScroll] ifFalse:[self scrollUp:amountToScroll]
+	]
     ] ifFalse:[
-        pageScroll ifTrue:[
-            horizontal ifTrue:[self pageRight] ifFalse:[self pageDown]
-        ] ifFalse:[
-            horizontal ifTrue:[self scrollRight:amountToScroll] ifFalse:[self scrollDown:amountToScroll]
-        ]
+	pageScroll ifTrue:[
+	    horizontal ifTrue:[self pageRight] ifFalse:[self pageDown]
+	] ifFalse:[
+	    horizontal ifTrue:[self scrollRight:amountToScroll] ifFalse:[self scrollDown:amountToScroll]
+	]
     ].
 
     "Modified: / 21.5.1999 / 19:58:42 / cg"
@@ -6489,18 +6491,18 @@
 
     "/ first ask my flags if its enforced or forbidden
     self requestFocusOnPointerEnter ifTrue:[
-        doRequestFocus := true
+	doRequestFocus := true
     ] ifFalse:[
-        self doNotRequestFocusOnPointerEnter ifTrue:[
-            doRequestFocus := false
-        ] ifFalse:[
-            "/ then look for the settings.
-            doRequestFocus := self wantsFocusWithPointerEnter
-        ]
+	self doNotRequestFocusOnPointerEnter ifTrue:[
+	    doRequestFocus := false
+	] ifFalse:[
+	    "/ then look for the settings.
+	    doRequestFocus := self wantsFocusWithPointerEnter
+	]
     ].
 
     doRequestFocus ifTrue:[
-        self requestFocus.
+	self requestFocus.
     ].
     dependents notNil ifTrue:[ self changed:#pointerInView ]
 
@@ -6566,8 +6568,8 @@
 
     hCont := self heightOfContents.
     hCont > (innerHeight * 3) ifTrue:[
-        factor := (hCont // innerHeight) min:4.
-        ^ amountToScroll * factor.
+	factor := (hCont // innerHeight) min:4.
+	^ amountToScroll * factor.
     ].
     ^ amountToScroll
 !
@@ -6580,58 +6582,58 @@
     |subViews|
 
     viewBackground isViewBackground ifTrue:[
-        "/ there is only one, which needs this: a gradient over the actual height/width;
-        "/ this cannot just fill the new exposed area, but must recompute the gradient scales
-        (viewBackground needsFullRedrawOnChangeOfWidth
-        or:[ viewBackground needsFullRedrawOnChangeOfHeight]) ifTrue:[
-            self invalidate
-        ]
+	"/ there is only one, which needs this: a gradient over the actual height/width;
+	"/ this cannot just fill the new exposed area, but must recompute the gradient scales
+	(viewBackground needsFullRedrawOnChangeOfWidth
+	or:[ viewBackground needsFullRedrawOnChangeOfHeight]) ifTrue:[
+	    self invalidate
+	]
     ].
 
     (subViews := self subViews) notEmptyOrNil ifTrue:[
-        (how isNil "false"
-        or:[how == #smaller]) ifTrue:[
-            subViews do:[:view |
-                view notNil ifTrue:[
-                    view containerChangedSize
-                ]
-            ]
-        ] ifFalse:[
-            "doing it reverse speeds up resizing - usually subviews
-             are created from top-left to bottom-right; therefore
-             bottom-right views will be moved/resized first, then top-left ones;
-             this avoids multiple redraws of subviews"
-
-            subViews reverseDo:[:view |
-                view notNil ifTrue:[
-                    view containerChangedSize
-                ]
-            ]
-        ]
+	(how isNil "false"
+	or:[how == #smaller]) ifTrue:[
+	    subViews do:[:view |
+		view notNil ifTrue:[
+		    view containerChangedSize
+		]
+	    ]
+	] ifFalse:[
+	    "doing it reverse speeds up resizing - usually subviews
+	     are created from top-left to bottom-right; therefore
+	     bottom-right views will be moved/resized first, then top-left ones;
+	     this avoids multiple redraws of subviews"
+
+	    subViews reverseDo:[:view |
+		view notNil ifTrue:[
+		    view containerChangedSize
+		]
+	    ]
+	]
     ].
 
     components notNil ifTrue:[
-        (how isNil "false"
-        or:[how == #smaller]) ifTrue:[
-            components do:[:view |
-                view containerChangedSize
-            ]
-        ] ifFalse:[
-            "doing it reverse speeds up resizing - usually subviews
-             are created from top-left to bottom-right; therefore
-             bottom-right views will be moved/resized first, then top-left ones;
-             this avoids multiple redraws of subviews"
-
-            components reverseDo:[:view |
-                view containerChangedSize
-            ]
-        ]
+	(how isNil "false"
+	or:[how == #smaller]) ifTrue:[
+	    components do:[:view |
+		view containerChangedSize
+	    ]
+	] ifFalse:[
+	    "doing it reverse speeds up resizing - usually subviews
+	     are created from top-left to bottom-right; therefore
+	     bottom-right views will be moved/resized first, then top-left ones;
+	     this avoids multiple redraws of subviews"
+
+	    components reverseDo:[:view |
+		view containerChangedSize
+	    ]
+	]
     ].
 
     self changed:#sizeOfView with:how.
 
     superView notNil ifTrue:[
-        superView subViewChangedSize
+	superView subViewChangedSize
     ]
 
     "Modified: / 2.4.1998 / 13:59:59 / cg"
@@ -6675,20 +6677,20 @@
     |wdgr|
 
     shown ifTrue:[
-        shown := false.
-        dependents notNil ifTrue:[ self changed:#visibility ].
+	shown := false.
+	dependents notNil ifTrue:[ self changed:#visibility ].
     ].
     (wdgr := self windowGroup) notNil ifTrue:[
-        wdgr focusView == self ifTrue:[
-            wdgr focusViewUnmapped.
-        ].
+	wdgr focusView == self ifTrue:[
+	    wdgr focusViewUnmapped.
+	].
     ].
 
     subViews notNil ifTrue:[
-        subViews do:[:v |
-            v containerUnmapped
-        ].
-        dependents notNil ifTrue:[ self changed:#visibility ].
+	subViews do:[:v |
+	    v containerUnmapped
+	].
+	dependents notNil ifTrue:[ self changed:#visibility ].
     ]
 
     "Modified: 25.2.1997 / 22:40:52 / cg"
@@ -6703,8 +6705,8 @@
 
     newShown := how ~~ #fullyObscured.
     newShown ~~ shown ifTrue:[
-        shown := newShown.
-        dependents notNil ifTrue:[ self changed:#visibility ].
+	shown := newShown.
+	dependents notNil ifTrue:[ self changed:#visibility ].
     ].
 !
 
@@ -6720,56 +6722,56 @@
      sent to scrollableViews..."
 
     scrollCode == #SB_LINEDOWN ifTrue:[
-        self scrollDown.
-        ^ self.
+	self scrollDown.
+	^ self.
     ].
     scrollCode == #SB_LINEUP ifTrue:[
-        self scrollUp.
-        ^ self.
+	self scrollUp.
+	^ self.
     ].
     scrollCode == #SB_LINELEFT ifTrue:[
-        self scrollLeft.
-        ^ self.
+	self scrollLeft.
+	^ self.
     ].
     scrollCode == #SB_LINERIGHT ifTrue:[
-        self scrollRight.
-        ^ self.
+	self scrollRight.
+	^ self.
     ].
     scrollCode == #SB_PAGEDOWN ifTrue:[
-        self pageDown.
-        ^ self.
+	self pageDown.
+	^ self.
     ].
     scrollCode == #SB_PAGEUP ifTrue:[
-        self pageUp.
-        ^ self.
+	self pageUp.
+	^ self.
     ].
     scrollCode == #SB_PAGELEFT ifTrue:[
-        self pageLeft.
-        ^ self.
+	self pageLeft.
+	^ self.
     ].
     scrollCode == #SB_PAGERIGHT ifTrue:[
-        self pageRight.
-        ^ self.
+	self pageRight.
+	^ self.
     ].
     scrollCode == #SB_THUMBPOSITIONVERTICAL ifTrue:[
-        self scrollVerticalToPercent:newPosition.
-        ^ self.
+	self scrollVerticalToPercent:newPosition.
+	^ self.
     ].
     scrollCode == #SB_THUMBPOSITIONHORIZONTAL ifTrue:[
-        self scrollHorizontalToPercent:newPosition.
-        ^ self.
+	self scrollHorizontalToPercent:newPosition.
+	^ self.
     ].
     scrollCode == #SB_THUMBTRACKVERTICAL ifTrue:[
-        self scrollVerticalToPercent:newPosition.
-        ^ self.
+	self scrollVerticalToPercent:newPosition.
+	^ self.
     ].
     scrollCode == #SB_THUMBTRACKHORIZONTAL ifTrue:[
-        self scrollHorizontalToPercent:newPosition.
-        ^ self.
+	self scrollHorizontalToPercent:newPosition.
+	^ self.
     ].
 
     scrollCode == #SB_ENDSCROLL ifTrue:[
-        ^ self.
+	^ self.
     ].
 ! !
 
@@ -6901,13 +6903,13 @@
     |sequence ev lastView|
 
     (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
-        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
-        ifFalse:[ sequence := keyOrStringOrSymbol ].
+	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+	ifFalse:[ sequence := keyOrStringOrSymbol ].
 
     sequence do:[:each |
-        ev := WindowEvent keyPress:each x:0 y:0 view:self.
-        "/ x/y will be set in simulateUserEvent:ev at:aPoint
-        lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
+	ev := WindowEvent keyPress:each x:0 y:0 view:self.
+	"/ x/y will be set in simulateUserEvent:ev at:aPoint
+	lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
     ].
     ^ lastView
 !
@@ -6928,17 +6930,17 @@
     |sequence ev1 ev2 lastView|
 
     (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
-        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
-        ifFalse:[ sequence := keyOrStringOrSymbol ].
+	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+	ifFalse:[ sequence := keyOrStringOrSymbol ].
 
     sequence do:[:each |
-        ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
-        "/ x/y will be set in simulateUserEvent:ev at:aPoint
-        lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
-
-        ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
-        "/ x/y will be set in simulateUserEvent:ev at:aPoint
-        lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
+	ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
+	"/ x/y will be set in simulateUserEvent:ev at:aPoint
+	lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
+
+	ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
+	"/ x/y will be set in simulateUserEvent:ev at:aPoint
+	lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
     ].
     ^ lastView
 !
@@ -6959,13 +6961,13 @@
     |sequence ev lastView|
 
     (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
-        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
-        ifFalse:[ sequence := keyOrStringOrSymbol ].
+	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+	ifFalse:[ sequence := keyOrStringOrSymbol ].
 
     sequence do:[:each |
-        ev := WindowEvent keyRelease:each x:0 y:0 view:self.
-        "/ x/y will be set in simulateUserEvent:ev at:aPoint
-        lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
+	ev := WindowEvent keyRelease:each x:0 y:0 view:self.
+	"/ x/y will be set in simulateUserEvent:ev at:aPoint
+	lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
     ].
     ^ lastView
 !
@@ -6999,45 +7001,45 @@
     |targetView pointXLated|
 
     sendDisplayEvent ifTrue:[
-        "/ translate to screen coordinates
-        pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
-        device
-            sendKeyOrButtonEvent:ev type
-            x:pointXLated x y:pointXLated y
-            keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
-            state:(ev modifierFlags)
-            toViewId:self id.
-        ^ self.
+	"/ translate to screen coordinates
+	pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
+	device
+	    sendKeyOrButtonEvent:ev type
+	    x:pointXLated x y:pointXLated y
+	    keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
+	    state:(ev modifierFlags)
+	    toViewId:self id.
+	^ self.
     ].
 
     (ev isButtonEvent or:[ev isPointerEnterLeaveEvent]) ifTrue:[
-        "/ if there is a pointer grab, the event has to sent to that one
-        targetView := device activePointerGrab.
+	"/ if there is a pointer grab, the event has to sent to that one
+	targetView := device activePointerGrab.
     ] ifFalse:[
-        (ev isKeyEvent) ifTrue:[
-            "/ if there is a pointer grab, the event has to sent to that one
-            targetView := device activeKeyboardGrab.
-        ].
+	(ev isKeyEvent) ifTrue:[
+	    "/ if there is a pointer grab, the event has to sent to that one
+	    targetView := device activeKeyboardGrab.
+	].
     ].
     targetView isNil ifTrue:[
-        ((0@0 corner:self extent) containsPoint:aPoint) ifTrue:[
-            self subViews do:[:each |
-                |whichView|
-
-                whichView := each simulateUserEvent:ev at:(device translatePoint:aPoint fromView:self toView:each).
-                whichView notNil ifTrue:[^ whichView].
-            ].
-            targetView := self.
-        ].
+	((0@0 corner:self extent) containsPoint:aPoint) ifTrue:[
+	    self subViews do:[:each |
+		|whichView|
+
+		whichView := each simulateUserEvent:ev at:(device translatePoint:aPoint fromView:self toView:each).
+		whichView notNil ifTrue:[^ whichView].
+	    ].
+	    targetView := self.
+	].
     ].
 
     targetView notNil ifTrue:[
-        pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
-        ev x:(pointXLated x).
-        ev y:(pointXLated y).
-        ev view:targetView.
-        targetView sensor pushEvent:ev.
-        ^ targetView
+	pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
+	ev x:(pointXLated x).
+	ev y:(pointXLated y).
+	ev view:targetView.
+	targetView sensor pushEvent:ev.
+	^ targetView
     ].
 
     ^ nil
@@ -7054,13 +7056,13 @@
 
     self stopButtonLongPressedHandlerProcess.
     p :=
-        [
-            Delay waitForSeconds:0.7.
-            self sensor leftButtonPressed ifTrue:[
-                "/ simulate a right-button press
-                self buttonPress:2 x:0 y:0
-            ]
-        ] newProcess.
+	[
+	    Delay waitForSeconds:0.7.
+	    self sensor leftButtonPressed ifTrue:[
+		"/ simulate a right-button press
+		self buttonPress:2 x:0 y:0
+	    ]
+	] newProcess.
 
     device buttonLongPressedHandlerProcess:p.
     p resume.
@@ -7073,8 +7075,8 @@
 
     (p := device buttonLongPressedHandlerProcess) notNil ifTrue:[
 "/ Transcript showCR:'stop'.
-        device buttonLongPressedHandlerProcess:nil.
-        p terminate.
+	device buttonLongPressedHandlerProcess:nil.
+	p terminate.
     ].
 ! !
 
@@ -7085,13 +7087,13 @@
 
     wg := self windowGroup.
     wg notNil ifTrue:[
-        device isWindowsPlatform ifTrue:[
-            wg focusView:aConsumer byTab:true.
-        ] ifFalse:[
-            aConsumer requestFocus.
-            "/ consumer requestFocus. - could be denied; but we force it here
-            wg focusView:aConsumer byTab:false.
-        ].
+	device isWindowsPlatform ifTrue:[
+	    wg focusView:aConsumer byTab:true.
+	] ifFalse:[
+	    aConsumer requestFocus.
+	    "/ consumer requestFocus. - could be denied; but we force it here
+	    wg focusView:aConsumer byTab:false.
+	].
     ].
 !
 
@@ -7112,25 +7114,25 @@
     |firstInputField firstConsumer firstCursorConsumer consumer|
 
     self withAllSubViewsDo:[:v |
-        v shown ifTrue:[
-            (firstInputField isNil and:[v isInputField]) ifTrue:[
-                firstInputField := v
-            ].
-            (firstConsumer isNil and:[v isKeyboardConsumer]) ifTrue:[
-                firstConsumer := v
-            ].
-            (firstCursorConsumer isNil and:[v isCursorKeyConsumer]) ifTrue:[
-                firstCursorConsumer := v
-            ].
-        ].
+	v shown ifTrue:[
+	    (firstInputField isNil and:[v isInputField]) ifTrue:[
+		firstInputField := v
+	    ].
+	    (firstConsumer isNil and:[v isKeyboardConsumer]) ifTrue:[
+		firstConsumer := v
+	    ].
+	    (firstCursorConsumer isNil and:[v isCursorKeyConsumer]) ifTrue:[
+		firstCursorConsumer := v
+	    ].
+	].
     ].
     (firstInputField notNil and:[self preferFirstInputFieldWhenAssigningInitialFocus]) ifTrue:[
-        consumer := firstInputField.
+	consumer := firstInputField.
     ].
     consumer := (consumer ? firstConsumer ? firstCursorConsumer).
     "/ Transcript showCR:consumer.
     consumer notNil ifTrue:[
-        self assignKeyboardFocusTo:consumer
+	self assignKeyboardFocusTo:consumer
     ].
 
     "Modified: / 29-08-2006 / 14:32:30 / cg"
@@ -7148,9 +7150,9 @@
 
     "/ canTab := aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagCanTab
+	flagBits := flagBits bitOr:FlagCanTab
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagCanTab
+	flagBits := flagBits bitClear:FlagCanTab
     ].
 !
 
@@ -7166,9 +7168,9 @@
      if false, the behavior depends upon the settings."
 
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
+	flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
+	flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
     ].
 !
 
@@ -7196,16 +7198,16 @@
     index == 0 ifTrue:[ ^ nil ].
 
     subviewsInFocusOrder from:(index + 1) do:[:eachChildAfterTheOne |
-        eachChildAfterTheOne shown ifTrue:[
-            (eachChildAfterTheOne canTab
-            and:[eachChildAfterTheOne enabled]) ifTrue:[
-                ^ eachChildAfterTheOne
-            ].
-
-            (viewInSubView := eachChildAfterTheOne focusNext) notNil ifTrue:[
-                ^ viewInSubView
-            ].
-        ].
+	eachChildAfterTheOne shown ifTrue:[
+	    (eachChildAfterTheOne canTab
+	    and:[eachChildAfterTheOne enabled]) ifTrue:[
+		^ eachChildAfterTheOne
+	    ].
+
+	    (viewInSubView := eachChildAfterTheOne focusNext) notNil ifTrue:[
+		^ viewInSubView
+	    ].
+	].
     ].
     ^ nil
 !
@@ -7217,15 +7219,15 @@
     |viewInSubView|
 
     self subviewsInFocusOrder do:[:aSubView|
-        (aSubView canTab
-        and:[aSubView enabled
-        and:[aCondition value:aSubView]]) ifTrue:[
-            ^ aSubView
-        ].
-
-        (viewInSubView := aSubView focusNextForWhich:aCondition) notNil ifTrue:[
-            ^ viewInSubView
-        ]
+	(aSubView canTab
+	and:[aSubView enabled
+	and:[aCondition value:aSubView]]) ifTrue:[
+	    ^ aSubView
+	].
+
+	(viewInSubView := aSubView focusNextForWhich:aCondition) notNil ifTrue:[
+	    ^ viewInSubView
+	]
     ].
     ^ nil
 !
@@ -7237,18 +7239,18 @@
     |viewInSubView|
 
     shown ifTrue:[
-        self subviewsInFocusOrder reverseDo:[:aSubView|
-            aSubView shown ifTrue:[
-                viewInSubView := aSubView focusPrevious.
-
-                viewInSubView notNil ifTrue:[
-                    ^ viewInSubView
-                ].
-                (aSubView canTab and:[aSubView enabled]) ifTrue:[
-                    ^ aSubView
-                ].
-            ]
-        ]
+	self subviewsInFocusOrder reverseDo:[:aSubView|
+	    aSubView shown ifTrue:[
+		viewInSubView := aSubView focusPrevious.
+
+		viewInSubView notNil ifTrue:[
+		    ^ viewInSubView
+		].
+		(aSubView canTab and:[aSubView enabled]) ifTrue:[
+		    ^ aSubView
+		].
+	    ]
+	]
     ].
     ^ nil
 !
@@ -7267,19 +7269,19 @@
     index == 0 ifTrue:[ ^ nil ].
 
     subviewsInFocusOrder from:1 to:(index - 1) reverseDo:[:eachChildBeforeTheOne |
-        eachChildBeforeTheOne shown ifTrue:[
-            (viewInSubView := eachChildBeforeTheOne focusPrevious) notNil ifTrue:[
-                ^ viewInSubView
-            ].
-
-            (eachChildBeforeTheOne canTab and:[eachChildBeforeTheOne enabled]) ifTrue:[
-                ^ eachChildBeforeTheOne
-            ].
-        ].
+	eachChildBeforeTheOne shown ifTrue:[
+	    (viewInSubView := eachChildBeforeTheOne focusPrevious) notNil ifTrue:[
+		^ viewInSubView
+	    ].
+
+	    (eachChildBeforeTheOne canTab and:[eachChildBeforeTheOne enabled]) ifTrue:[
+		^ eachChildBeforeTheOne
+	    ].
+	].
     ].
     "/ the code below allows for a notebooks tab-list to be reached
     (self canTab and:[self enabled]) ifTrue:[
-        ^ self
+	^ self
     ].
 
     ^ nil
@@ -7314,7 +7316,7 @@
 
     "/ Transcript show:'take: '; showCR:self.
     windowGroup notNil ifTrue:[
-        ^ windowGroup focusRequestFrom:self
+	^ windowGroup focusRequestFrom:self
     ].
     "/ Transcript show:'oops: '; showCR:self.
     ^ true
@@ -7336,9 +7338,9 @@
     "
 
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
+	flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
+	flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
     ].
 !
 
@@ -7351,34 +7353,34 @@
     |delta clrId bd graphicsDevice|
 
     explicit ifTrue:[
-        (self drawableId notNil
-        and:[superView notNil
-        and:[styleSheet notNil]]) ifTrue:[
-            (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
-                graphicsDevice := device.
-
-                (graphicsDevice supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
-                    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
-                        bd := 0.
-                    ]
-                ].
-                delta := bd - self borderWidth.
-                delta ~~ 0 ifTrue:[
-                    (left == 0 or:[top == 0]) ifTrue:[
-                        graphicsDevice resizeWindow:self drawableId width:width-delta-delta height:height-delta-delta.
-                    ] ifFalse:[
-                        graphicsDevice moveWindow:self drawableId x:left-delta y:top-delta.
-                    ].
-                    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
-                ].
-
-                clrId := (DefaultFocusColor onDevice:graphicsDevice) colorId.
-                clrId isNil ifTrue:[
-                    clrId := graphicsDevice blackpixel
-                ].
-                graphicsDevice setWindowBorderColor:clrId in:self drawableId.
-            ]
-        ]
+	(self drawableId notNil
+	and:[superView notNil
+	and:[styleSheet notNil]]) ifTrue:[
+	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
+		graphicsDevice := device.
+
+		(graphicsDevice supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
+		    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
+			bd := 0.
+		    ]
+		].
+		delta := bd - self borderWidth.
+		delta ~~ 0 ifTrue:[
+		    (left == 0 or:[top == 0]) ifTrue:[
+			graphicsDevice resizeWindow:self drawableId width:width-delta-delta height:height-delta-delta.
+		    ] ifFalse:[
+			graphicsDevice moveWindow:self drawableId x:left-delta y:top-delta.
+		    ].
+		    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
+		].
+
+		clrId := (DefaultFocusColor onDevice:graphicsDevice) colorId.
+		clrId isNil ifTrue:[
+		    clrId := graphicsDevice blackpixel
+		].
+		graphicsDevice setWindowBorderColor:clrId in:self drawableId.
+	    ]
+	]
     ]
 
     "Modified: / 17.9.1998 / 15:08:34 / cg"
@@ -7393,24 +7395,24 @@
     |delta bd graphicsDevice|
 
     explicit ifTrue:[
-        (self drawableId notNil and:[superView notNil]) ifTrue:[
-            (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
-                graphicsDevice := device.
-
-                (graphicsDevice supportsWindowBorder:(bd := self borderWidth)) ifFalse:[
-                    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
-                        bd := 0.
-                    ]
-                ].
-                delta := DefaultFocusBorderWidth - bd.
-                delta ~~ 0 ifTrue:[
-                    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
-                    graphicsDevice moveWindow:self drawableId x:left y:top.
-                    graphicsDevice resizeWindow:self drawableId width:width height:height.
-                ].
-                self setBorderColor.
-            ]
-        ]
+	(self drawableId notNil and:[superView notNil]) ifTrue:[
+	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
+		graphicsDevice := device.
+
+		(graphicsDevice supportsWindowBorder:(bd := self borderWidth)) ifFalse:[
+		    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
+			bd := 0.
+		    ]
+		].
+		delta := DefaultFocusBorderWidth - bd.
+		delta ~~ 0 ifTrue:[
+		    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
+		    graphicsDevice moveWindow:self drawableId x:left y:top.
+		    graphicsDevice resizeWindow:self drawableId width:width height:height.
+		].
+		self setBorderColor.
+	    ]
+	]
     ]
 
     "Modified: / 17.9.1998 / 15:08:02 / cg"
@@ -7424,7 +7426,7 @@
     "Unconditionally take the focus from my windowGroup"
 
     windowGroup notNil ifTrue:[
-        windowGroup focusView:self byTab:nil "/false.
+	windowGroup focusView:self byTab:nil "/false.
     ].
 !
 
@@ -7436,9 +7438,9 @@
 
 takeFocusWhenMapped:aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagTakeFocusWhenMapped
+	flagBits := flagBits bitOr:FlagTakeFocusWhenMapped
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagTakeFocusWhenMapped
+	flagBits := flagBits bitClear:FlagTakeFocusWhenMapped
     ].
 
     "Created: / 09-12-2010 / 10:34:11 / cg"
@@ -7448,15 +7450,15 @@
     "invoked when my topView is mapped"
 
     self isKeyboardConsumer ifTrue:[
-        self takeFocusWhenMapped ifTrue:[
-            self requestFocus
-        ]
+	self takeFocusWhenMapped ifTrue:[
+	    self requestFocus
+	]
     ] ifFalse:[
-        subViews notNil ifTrue:[
-            subViews do:[:eachSubView |
-                eachSubView topViewWasMapped
-            ].
-        ].
+	subViews notNil ifTrue:[
+	    subViews do:[:eachSubView |
+		eachSubView topViewWasMapped
+	    ].
+	].
     ].
 
     "Created: / 09-12-2010 / 18:11:51 / cg"
@@ -7537,8 +7539,8 @@
 "/        sensor flushMotionEventsFor:nil
 "/    ].
     aCursorOrNil notNil ifTrue:[
-        cursor := (aCursorOrNil onDevice:device).
-        ^ device grabPointerInView:self withCursor:cursor
+	cursor := (aCursorOrNil onDevice:device).
+	^ device grabPointerInView:self withCursor:cursor
     ].
     ^ device grabPointerInView:self
 !
@@ -7549,14 +7551,14 @@
     |sensor|
 
     device activeKeyboardGrab == self ifTrue:[
-        (sensor := self sensor) notNil ifTrue:[
-            "/ make certain all X events have been received
-            device sync.
-            "/ now all events have been received.
-            "/ now, flush all pointer events
-            sensor flushKeyboardFor:self
-        ].
-        device ungrabKeyboard.
+	(sensor := self sensor) notNil ifTrue:[
+	    "/ make certain all X events have been received
+	    device sync.
+	    "/ now all events have been received.
+	    "/ now, flush all pointer events
+	    sensor flushKeyboardFor:self
+	].
+	device ungrabKeyboard.
     ].
 !
 
@@ -7566,14 +7568,14 @@
     |sensor|
 
     device activePointerGrab == self ifTrue:[
-        (sensor := self sensor) notNil ifTrue:[
-            "/ make certain all X events have been received
-            device sync.
-            "/ now all events have been received.
-            "/ now, flush all pointer events
-            sensor flushMotionEventsFor:self
-        ].
-        device ungrabPointer.
+	(sensor := self sensor) notNil ifTrue:[
+	    "/ make certain all X events have been received
+	    device sync.
+	    "/ now all events have been received.
+	    "/ now, flush all pointer events
+	    sensor flushMotionEventsFor:self
+	].
+	device ungrabPointer.
     ]
 ! !
 
@@ -7590,7 +7592,7 @@
     |app|
 
     (app := self application) notNil ifTrue:[
-        app noticeOfWindowClose:self
+	app noticeOfWindowClose:self
     ].
 !
 
@@ -7598,7 +7600,7 @@
     |app|
 
     (app := self application) notNil ifTrue:[
-        app noticeOfWindowOpen:self
+	app noticeOfWindowOpen:self
     ].
     dependents notNil ifTrue:[ self changed:#opened ]
 !
@@ -7649,11 +7651,11 @@
 
     self isBeingDestroyed:true.
     realized ifTrue:[
-        self unmap.
+	self unmap.
     ].
     shown ifTrue:[
-        shown := false.
-        dependents notNil ifTrue:[ self changed:#visibility ].
+	shown := false.
+	dependents notNil ifTrue:[ self changed:#visibility ].
     ].
 
 "/    controller notNil ifTrue:[
@@ -7662,11 +7664,11 @@
 "/    ].
 
     subViews notNil ifTrue:[
-        self destroySubViews.
+	self destroySubViews.
     ].
     superView notNil ifTrue:[
-        superView removeSubView:self.
-        superView := nil
+	superView removeSubView:self.
+	superView := nil
     ].
     super destroy.
 
@@ -7678,13 +7680,13 @@
 "/    ].
 
     controller notNil ifTrue:[
-        controller release.
-        controller := nil.
+	controller release.
+	controller := nil.
     ].
 
     windowGroup notNil ifTrue:[
-        windowGroup removeView:self.
-        windowGroup := nil
+	windowGroup removeView:self.
+	windowGroup := nil
     ].
 
     self noticeOfWindowClose.
@@ -7705,32 +7707,32 @@
     viewBackground := DefaultViewBackgroundColor.
 
     DefaultLightColor notNil ifTrue:[
-        lightColor := DefaultLightColor.
+	lightColor := DefaultLightColor.
     ] ifFalse:[
-        device hasGrayscales ifTrue:[
-            (viewBackground isImageOrForm and:[viewBackground colorMap isNil]) ifTrue:[
-                lightColor := viewBackground averageColor lightened.
-            ] ifFalse:[
-                lightColor := viewBackground lightened.
-            ].
-            DefaultLightColor := lightColor.
-        ] ifFalse:[
-            "
-             this seems strange: on B&W screens, we create the light color
-             darker than normal viewBackground (White) -
-             to make the boundary of the view visible
-            "
-            lightColor := Color gray:50
-        ]
+	device hasGrayscales ifTrue:[
+	    (viewBackground isImageOrForm and:[viewBackground colorMap isNil]) ifTrue:[
+		lightColor := viewBackground averageColor lightened.
+	    ] ifFalse:[
+		lightColor := viewBackground lightened.
+	    ].
+	    DefaultLightColor := lightColor.
+	] ifFalse:[
+	    "
+	     this seems strange: on B&W screens, we create the light color
+	     darker than normal viewBackground (White) -
+	     to make the boundary of the view visible
+	    "
+	    lightColor := Color gray:50
+	]
     ].
     DefaultShadowColor notNil ifTrue:[
-        shadowColor := DefaultShadowColor.
+	shadowColor := DefaultShadowColor.
     ] ifFalse:[
-        shadowColor := self blackColor.
+	shadowColor := self blackColor.
     ].
 
     ((DefaultBorderWidth ? 1) ~= 0 and:[DefaultBorderColor notNil]) ifTrue:[
-        self border:(SimpleBorder width:(DefaultBorderWidth ? 1) color:DefaultBorderColor)
+	self border:(SimpleBorder width:(DefaultBorderWidth ? 1) color:DefaultBorderColor)
     ].
 
     "/ font := self defaultFont.  -- already done in #initialize
@@ -7746,12 +7748,12 @@
      and keep the values in fast class variables
     "
     StyleSheet isNil ifTrue:[
-        DefaultStyle isNil ifTrue:[
-            "/ the very-very first time (no styleSheet yet)
-            View setDefaultStyle.
-            View defaultStyle:DefaultStyle.
-        ].
-        SimpleView updateAllStyleCaches
+	DefaultStyle isNil ifTrue:[
+	    "/ the very-very first time (no styleSheet yet)
+	    View setDefaultStyle.
+	    View defaultStyle:DefaultStyle.
+	].
+	SimpleView updateAllStyleCaches
     ].
 
     styleSheet := StyleSheet.
@@ -7778,7 +7780,6 @@
     self basicFont:self defaultFont.
 
     shown := realized := false.
-    "/ hiddenOnRealize := false.
     "/ explicitExtent := false.
 
     "fill in some defaults - some of them are usually redefined in subclasses
@@ -7802,15 +7803,15 @@
     "/ self originChangedFlag:false extentChangedFlag:false cornerChangedFlag:false.
 
     name isNil ifTrue:[
-        name := self class name.
+	name := self class name.
     ].
     bitGravity := #NorthWest. "/ nil.
     viewGravity := nil.
 
     controllerClass := self defaultControllerClass.
     controllerClass notNil ifTrue:[
-        controller := controllerClass new.
-        controller view:self.
+	controller := controllerClass new.
+	controller view:self.
     ].
 
     self initializeMiddleButtonMenu.
@@ -7830,7 +7831,7 @@
 prepareForReinit
     super prepareForReinit.
     windowGroup notNil ifTrue:[
-        windowGroup reinitialize
+	windowGroup reinitialize
     ]
 !
 
@@ -7847,12 +7848,12 @@
     oldBorder := self border.
     self initStyle.
     (self drawableId notNil and:[self gcId notNil]) ifTrue:[
-        "force a change"
-        self border:oldBorder.
-        self level:oldLevel.
-        self viewBackground:self viewBackground.
-        self clearView.
-        self invalidate.
+	"force a change"
+	self border:oldBorder.
+	self level:oldLevel.
+	self viewBackground:self viewBackground.
+	self clearView.
+	self invalidate.
     ].
 
     "Modified: / 18.9.1998 / 21:15:33 / cg"
@@ -7865,16 +7866,16 @@
 
     "if I have already been reinited - return"
     self drawableId notNil ifTrue:[
-        ^ self
+	^ self
     ].
 
     "
      superView must be there, first
     "
     superView notNil ifTrue:[
-        (sv := superView view) id isNil ifTrue:[
-            sv reinitialize
-        ]
+	(sv := superView view) id isNil ifTrue:[
+	    sv reinitialize
+	]
     ].
 
     "reinit cursor"
@@ -7886,18 +7887,18 @@
 
     "if I was mapped, do it again"
     realized ifTrue:[
-        "only remap if I have a superview - otherwise, I might be
-         a hidden iconView or menu ..."
-        superView notNil ifTrue:[
+	"only remap if I have a superview - otherwise, I might be
+	 a hidden iconView or menu ..."
+	superView notNil ifTrue:[
 "/            shown ifTrue:[
-            device
-                moveResizeWindow:self drawableId x:left y:top width:width height:height;
-                mapWindow:self drawableId
+	    device
+		moveResizeWindow:self drawableId x:left y:top width:width height:height;
+		mapWindow:self drawableId
 "/                mapView:self id:self drawableId iconified:false
 "/                atX:left y:top width:width height:height
 "/                minExtent:(self minExtent) maxExtent:(self maxExtent)
 "/            ].
-        ].
+	].
     ].
 
     "restore controller"
@@ -7910,8 +7911,8 @@
     "remove all dependencies from the receiver"
 
     visibilityChannel notNil ifTrue:[
-        visibilityChannel retractInterestsFor:self.
-        visibilityChannel removeDependent:self. visibilityChannel := nil
+	visibilityChannel retractInterestsFor:self.
+	visibilityChannel removeDependent:self. visibilityChannel := nil
     ].
 
     dependents := nil.
@@ -7960,9 +7961,9 @@
     "set or clear the mnemonic key"
 
     aSymbolOrNil isSymbol ifTrue:[
-        self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
+	self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
     ] ifFalse:[
-        self removeObjectAttribute:#mnemonicKey
+	self removeObjectAttribute:#mnemonicKey
     ].
 !
 
@@ -7975,19 +7976,19 @@
     key := aKeyEvent key.
     rawKey := aKeyEvent rawKey.
     (shown and:[ subViews notNil ]) ifTrue:[
-        subViews do:[:aSubView |
-            aSubView shown ifTrue:[
-                (aSubView enabled
-                    and:[ (mnemonic := aSubView mnemonicKey) notNil
-                    and:[ (mnemonic == rawKey or:[ mnemonic == key ]) ]])
-                ifTrue:[
-                    ^ aSubView
-                ].
-                (view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
-                    ^ view
-                ].
-            ]
-        ]
+	subViews do:[:aSubView |
+	    aSubView shown ifTrue:[
+		(aSubView enabled
+		    and:[ (mnemonic := aSubView mnemonicKey) notNil
+		    and:[ (mnemonic == rawKey or:[ mnemonic == key ]) ]])
+		ifTrue:[
+		    ^ aSubView
+		].
+		(view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
+		    ^ view
+		].
+	    ]
+	]
     ].
     ^ nil
 
@@ -8007,22 +8008,22 @@
     |key|
 
     shown ifTrue:[
-        self enabled ifTrue:[
-            (key := self shortcutKey) notNil ifTrue:[
-                (key == aKeyEvent key or:[ key == aKeyEvent rawKey ]) ifTrue:[
-                    self requestFocus.
-                    (controller ? self) performShortcutAction.
-                    ^ true
-                ]
-            ].
-        ].
-        subViews notNil ifTrue:[
-            subViews do:[:aSubView |
-                (aSubView processShortcut:aKeyEvent) ifTrue:[
-                    ^ true
-                ]
-            ]
-        ]
+	self enabled ifTrue:[
+	    (key := self shortcutKey) notNil ifTrue:[
+		(key == aKeyEvent key or:[ key == aKeyEvent rawKey ]) ifTrue:[
+		    self requestFocus.
+		    (controller ? self) performShortcutAction.
+		    ^ true
+		]
+	    ].
+	].
+	subViews notNil ifTrue:[
+	    subViews do:[:aSubView |
+		(aSubView processShortcut:aKeyEvent) ifTrue:[
+		    ^ true
+		]
+	    ]
+	]
     ].
     ^ false
 !
@@ -8038,33 +8039,33 @@
     s := aString readStream.
 
     [s atEnd] whileFalse:[
-        c := s next.
-        c == $& ifTrue:[
-           n := s peek.
-           (n notNil and:[n isLetter]) ifTrue:[
-               c := s next.
-               pos := xLatedString size + 1.
-           ] ifFalse:[
-                n == $& ifTrue:[
-                    s next.
-                ]
-           ]
-        ].
-        c notNil ifTrue:[
-           xLatedString nextPut:c
-        ]
+	c := s next.
+	c == $& ifTrue:[
+	   n := s peek.
+	   (n notNil and:[n isLetter]) ifTrue:[
+	       c := s next.
+	       pos := xLatedString size + 1.
+	   ] ifFalse:[
+		n == $& ifTrue:[
+		    s next.
+		]
+	   ]
+	].
+	c notNil ifTrue:[
+	   xLatedString nextPut:c
+	]
     ].
 
     xLatedString := xLatedString contents.
     pos notNil ifTrue:[
-        shortcutCharacter := xLatedString at:pos ifAbsent:nil.
-
-        xLatedString isText ifFalse:[
-            xLatedString := xLatedString asText
-        ].
-        xLatedString emphasisAt:pos add:#underline.
-
-        shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
+	shortcutCharacter := xLatedString at:pos ifAbsent:nil.
+
+	xLatedString isText ifFalse:[
+	    xLatedString := xLatedString asText
+	].
+	xLatedString emphasisAt:pos add:#underline.
+
+	shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
     ].
     ^ Array with:shortcut with:xLatedString
 
@@ -8089,9 +8090,9 @@
     "set or clear the shortcut key"
 
     aSymbolOrNil notNil ifTrue:[
-        self objectAttributeAt:#shortcutKey put:aSymbolOrNil
+	self objectAttributeAt:#shortcutKey put:aSymbolOrNil
     ] ifFalse:[
-        self removeObjectAttribute:#shortcutKey
+	self removeObjectAttribute:#shortcutKey
     ].
 ! !
 
@@ -8103,8 +8104,8 @@
     font := gc font.
     oldSize := font size.
     newFont := font asSize:(largerBoolean
-                            ifTrue:[(oldSize + 1) min:100]
-                            ifFalse:[(oldSize-1) max:4]).
+			    ifTrue:[(oldSize + 1) min:100]
+			    ifFalse:[(oldSize-1) max:4]).
     self font:newFont.
 
     "Modified: / 27-02-1996 / 00:53:51 / cg"
@@ -8120,86 +8121,86 @@
      and handled in the superClass (static menus are a historic leftOver).
      Otherwise, the follwing steps are performed:
 
-        - ask the receiver for the menu (via #yellowButtonMenu)
-        - ask the receiver for the menuPerformer.
-        - startUp the menu - it is supposed to return an actionSelector
-        - if the menuPerformer responds to the selector,
-          send it to the performer;
-          otherwise send it to the view (the receiver)
-          This is funny, it allows additional menuItems to be added
-          AND still get the views copy/cut/paste functionality.
-          Without this, you had to redefine and forward all of those
-          messages in the performer."
+	- ask the receiver for the menu (via #yellowButtonMenu)
+	- ask the receiver for the menuPerformer.
+	- startUp the menu - it is supposed to return an actionSelector
+	- if the menuPerformer responds to the selector,
+	  send it to the performer;
+	  otherwise send it to the view (the receiver)
+	  This is funny, it allows additional menuItems to be added
+	  AND still get the views copy/cut/paste functionality.
+	  Without this, you had to redefine and forward all of those
+	  messages in the performer."
 
     |menu menuPerformer actionSelector prevReceiver wg|
 
     self middleButtonMenu isNil ifTrue:[
-        "
-         try ST-80 style menus first:
-         if there is a model, and a menuMessage is defined,
-         ask model for the menu and launch that if non-nil.
-        "
-        menu := self yellowButtonMenu.
-        menu notNil ifTrue:[
-            "
-             got one, launch the menu. It is supposed
-             to return an actionSelector.
-            "
-            menuPerformer := self menuPerformer value.
-
-            "/ could be a spec ...
-            menu isArray ifTrue:[
-                menu := menu decodeAsLiteralArray.
-                menu receiver:menuPerformer.
-                menu findGuiResourcesIn:(self menuHolder).
-            ] ifFalse:[
-                (menu respondsTo:#receiver) ifTrue:[
-                    menuPerformer := menu receiver ? menuPerformer.
-                ].
-            ].
-
-            "
-             a temporary kludge:
-                 pass myself as receiver, the menuPerformer as performer;
-                 the menu will send its messages to either the
-                 menuPerformer or me (its receiver).
-                 This allows for the ST-80 behavior, where some messages
-                 go to the model, others to the view
-                 (copy/cut/paste).
-            "
-            (prevReceiver := menu receiver) isNil ifTrue:[
-                "/ kludge for oldStyle menus (MenuView/PopUpMenu)
-                "/ not req'd for real Menus
-                "/ (menu isKindOf:Menu) ifFalse:[
-                (menu respondsTo:#menuPerformer:) ifTrue:[
-                    menu receiver:self.    "/ really ?
-                    menu menuPerformer:menuPerformer.
-                ] ifFalse:[
-                "/ ] ifTrue:[
-                    "/ new style menu
-                    menu receiver:menuPerformer.
-                ]
-            ].
-
-            "/
-            "/ startup the menu - this returns a selector
-            "/
-            actionSelector := self startUpMenu:menu.
-
-            "/ before doing anything else, redraw expose area from
-            "/ the menu (in case the action changes my state)
-            (wg := self windowGroup) notNil ifTrue:[
-                wg processExposeEvents.
-            ].
-
-            (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
-                self dispatchMenuSelection:actionSelector to: menuPerformer.
-            ].
-
-            menu receiver:prevReceiver.
-
-            ^ self
-        ].
+	"
+	 try ST-80 style menus first:
+	 if there is a model, and a menuMessage is defined,
+	 ask model for the menu and launch that if non-nil.
+	"
+	menu := self yellowButtonMenu.
+	menu notNil ifTrue:[
+	    "
+	     got one, launch the menu. It is supposed
+	     to return an actionSelector.
+	    "
+	    menuPerformer := self menuPerformer value.
+
+	    "/ could be a spec ...
+	    menu isArray ifTrue:[
+		menu := menu decodeAsLiteralArray.
+		menu receiver:menuPerformer.
+		menu findGuiResourcesIn:(self menuHolder).
+	    ] ifFalse:[
+		(menu respondsTo:#receiver) ifTrue:[
+		    menuPerformer := menu receiver ? menuPerformer.
+		].
+	    ].
+
+	    "
+	     a temporary kludge:
+		 pass myself as receiver, the menuPerformer as performer;
+		 the menu will send its messages to either the
+		 menuPerformer or me (its receiver).
+		 This allows for the ST-80 behavior, where some messages
+		 go to the model, others to the view
+		 (copy/cut/paste).
+	    "
+	    (prevReceiver := menu receiver) isNil ifTrue:[
+		"/ kludge for oldStyle menus (MenuView/PopUpMenu)
+		"/ not req'd for real Menus
+		"/ (menu isKindOf:Menu) ifFalse:[
+		(menu respondsTo:#menuPerformer:) ifTrue:[
+		    menu receiver:self.    "/ really ?
+		    menu menuPerformer:menuPerformer.
+		] ifFalse:[
+		"/ ] ifTrue:[
+		    "/ new style menu
+		    menu receiver:menuPerformer.
+		]
+	    ].
+
+	    "/
+	    "/ startup the menu - this returns a selector
+	    "/
+	    actionSelector := self startUpMenu:menu.
+
+	    "/ before doing anything else, redraw expose area from
+	    "/ the menu (in case the action changes my state)
+	    (wg := self windowGroup) notNil ifTrue:[
+		wg processExposeEvents.
+	    ].
+
+	    (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
+		self dispatchMenuSelection:actionSelector to: menuPerformer.
+	    ].
+
+	    menu receiver:prevReceiver.
+
+	    ^ self
+	].
     ].
 
     "/
@@ -8223,8 +8224,8 @@
      mhmh - kludge for selectors with argument
     "
     (menuSelection isMemberOf:Array) ifTrue:[
-        actionArg1 := menuSelection at:2.
-        actionSelector := menuSelection at:1.
+	actionArg1 := menuSelection at:2.
+	actionSelector := menuSelection at:1.
     ].
 
     menuPerformer := aMenuPerformerOrNil ? self menuPerformer.
@@ -8235,18 +8236,18 @@
      Simulate this behavior, by looking what the model responds to.
     "
     actionSelector isSymbol ifTrue:[
-        (menuPerformer respondsTo:actionSelector) ifFalse:[
-            ((app := self application) respondsTo:actionSelector) ifTrue:[
-                menuPerformer := app.
-                actionArg1 := self model.
-                actionArg2 := self controller.
-            ] ifFalse:[
-                (self respondsTo:actionSelector) ifTrue:[
-                    menuPerformer := self
-                ]
-            ]
-        ].
-        menuPerformer perform:actionSelector withOptionalArgument:actionArg1 and:actionArg2.
+	(menuPerformer respondsTo:actionSelector) ifFalse:[
+	    ((app := self application) respondsTo:actionSelector) ifTrue:[
+		menuPerformer := app.
+		actionArg1 := self model.
+		actionArg2 := self controller.
+	    ] ifFalse:[
+		(self respondsTo:actionSelector) ifTrue:[
+		    menuPerformer := self
+		]
+	    ]
+	].
+	menuPerformer perform:actionSelector withOptionalArgument:actionArg1 and:actionArg2.
     ].
 
     "Created: / 20.6.1997 / 11:47:42 / cg"
@@ -8261,9 +8262,9 @@
     aMenuOrMenuSpec isNil ifTrue:[^ nil].
 
     aMenuOrMenuSpec isArray ifTrue:[
-        spec := aMenuOrMenuSpec decodeAsLiteralArray.
+	spec := aMenuOrMenuSpec decodeAsLiteralArray.
     ] ifFalse:[
-        spec := aMenuOrMenuSpec.
+	spec := aMenuOrMenuSpec.
     ].
     "/ spec receiver:self.     -- now done in findGuiResources ...
     spec findGuiResourcesIn:self.
@@ -8288,25 +8289,25 @@
 
 componentsContainingX:x y:y do:aBlock
     (x isNil or:[y isNil]) ifTrue:[
-        "/ delegated
-        ^ self
+	"/ delegated
+	^ self
     ].
 
     components notNil ifTrue:[
-        components reverseDo:[:aComponent |
-            |thisFrame|
-
-            thisFrame := aComponent bounds.
-            (thisFrame containsPointX:x y:y) ifTrue:[
-                "/ prepare for masked/non-rectangular components ...
-                (aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
-                ifTrue:[
-                    aBlock value:aComponent
-                           value:x - thisFrame left
-                           value:y - thisFrame top.
-                ]
-            ]
-        ]
+	components reverseDo:[:aComponent |
+	    |thisFrame|
+
+	    thisFrame := aComponent bounds.
+	    (thisFrame containsPointX:x y:y) ifTrue:[
+		"/ prepare for masked/non-rectangular components ...
+		(aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
+		ifTrue:[
+		    aBlock value:aComponent
+			   value:x - thisFrame left
+			   value:y - thisFrame top.
+		]
+	    ]
+	]
     ].
 
     "Created: / 08-05-1996 / 23:40:59 / cg"
@@ -8320,24 +8321,24 @@
 
     margin isNil ifTrue:[margin := 0].
     (margin ~~ 0) ifTrue:[
-        m2 := margin + margin.
-        nX := nY := margin.
-        nW := width - m2.
-        nH := height - m2.
+	m2 := margin + margin.
+	nX := nY := margin.
+	nW := width - m2.
+	nH := height - m2.
 "/        transformation notNil ifTrue:[
 "/            nX := transformation applyInverseToX:nX.
 "/            nY := transformation applyInverseToY:nY.
 "/            nW := transformation applyInverseScaleX:nW.
 "/            nH := transformation applyInverseScaleY:nH.
 "/        ].
-        innerClipRect := Rectangle
-                                 left:nX
-                                 top:nY
-                                 width:nW
-                                 height:nH
+	innerClipRect := Rectangle
+				 left:nX
+				 top:nY
+				 width:nW
+				 height:nH
     ] ifFalse:[
-        "no clipping"
-        innerClipRect := nil
+	"no clipping"
+	innerClipRect := nil
     ]
 
     "Modified: / 22.5.1999 / 16:50:58 / cg"
@@ -8358,10 +8359,10 @@
 
     bw := self borderWidth ? 0.
     insets isNil ifTrue:[
-        bw == 0 ifTrue:[
-            ^ p
-        ].
-        ^ (p x - bw) @ (p y - bw)
+	bw == 0 ifTrue:[
+	    ^ p
+	].
+	^ (p x - bw) @ (p y - bw)
     ].
     r := (insets at:3) + bw.
     b := (insets at:4) + bw.
@@ -8374,7 +8375,7 @@
 "/        b := bottomInset + bw
 "/    ].
     ((r ~~ 0) or:[b ~~ 0]) ifTrue:[
-        ^ (p x - r) @ (p y - b)
+	^ (p x - r) @ (p y - b)
     ].
     ^ p
 
@@ -8396,17 +8397,17 @@
     |subViews|
 
     (subViews := self subViews) notNil ifTrue:[
-        subViews do:[:v| |p|
-            (ignoreInvisible or:[v shown]) ifTrue:[
-                (    (aPoint x between:(v left) and:(v right))
-                 and:[aPoint y between:(v top)  and:(v bottom)]
-                ) ifTrue:[
-                    "/ found a subview - the point is there
-                    p := device translatePoint:aPoint fromView:self toView:v.
-                    ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
-                ]
-            ]
-        ]
+	subViews do:[:v| |p|
+	    (ignoreInvisible or:[v shown]) ifTrue:[
+		(    (aPoint x between:(v left) and:(v right))
+		 and:[aPoint y between:(v top)  and:(v bottom)]
+		) ifTrue:[
+		    "/ found a subview - the point is there
+		    p := device translatePoint:aPoint fromView:self toView:v.
+		    ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
+		]
+	    ]
+	]
     ].
     "/ no subview - the point is here
     ^ self
@@ -8418,9 +8419,9 @@
     "set the exeplicit extent flag to aBoolean."
 
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagHasExplicitExtent
+	flagBits := flagBits bitOr:FlagHasExplicitExtent
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagHasExplicitExtent
+	flagBits := flagBits bitClear:FlagHasExplicitExtent
     ].
 !
 
@@ -8438,50 +8439,50 @@
     bw := self borderWidth ? 0.
 
     superView isNil ifTrue:[
-        inRect := 0@0 extent:device extent
+	inRect := 0@0 extent:device extent
     ] ifFalse:[
-        inRect := superView viewRectangle.
+	inRect := superView viewRectangle.
     ].
 
     bw2 := bw * 2.
 
     rel := aPoint x.
     rel isInteger ifFalse:[
-        newX := (rel * (inRect width + bw2)) asInteger + inRect left.
-        (bw ~~ 0) ifTrue:[
-            newX := newX - bw
-        ].
+	newX := (rel * (inRect width + bw2)) asInteger + inRect left.
+	(bw ~~ 0) ifTrue:[
+	    newX := newX - bw
+	].
     ] ifTrue:[
-        newX := rel
+	newX := rel
     ].
 
     rel := aPoint y.
     rel isInteger ifFalse:[
-        newY := (rel * (inRect height + bw2)) asInteger + inRect top.
-        (bw ~~ 0) ifTrue:[
-            newY := newY - bw
-        ].
+	newY := (rel * (inRect height + bw2)) asInteger + inRect top.
+	(bw ~~ 0) ifTrue:[
+	    newY := newY - bw
+	].
     ] ifTrue:[
-        newY := rel
+	newY := rel
     ].
 
     insets notNil ifTrue:[
-        i := insets at:1.   "top"
-        (i  ~~ 0) ifTrue:[
-            newX := newX - i
-        ].
-        i := insets at:3.   "left"
-        (i  ~~ 0) ifTrue:[
-            newX := newX - i
-        ].
-        i := insets at:2.   "right"
-        (i ~~ 0) ifTrue:[
-            newY := newY - i
-        ].
-        i := insets at:4.   "bottom"
-        (i ~~ 0) ifTrue:[
-            newY := newY - i
-        ].
+	i := insets at:1.   "top"
+	(i  ~~ 0) ifTrue:[
+	    newX := newX - i
+	].
+	i := insets at:3.   "left"
+	(i  ~~ 0) ifTrue:[
+	    newX := newX - i
+	].
+	i := insets at:2.   "right"
+	(i ~~ 0) ifTrue:[
+	    newY := newY - i
+	].
+	i := insets at:4.   "bottom"
+	(i ~~ 0) ifTrue:[
+	    newY := newY - i
+	].
     ].
     ^ newX @ newY
 !
@@ -8500,7 +8501,7 @@
     p := self pointFromRelative:aPoint.
 
     insets isNil ifTrue:[
-        ^ p
+	^ p
     ].
     l := insets at:1.
     t := insets at:2.
@@ -8513,7 +8514,7 @@
 "/        t := topInset
 "/    ].
     ((l ~~ 0) or:[t ~~ 0]) ifTrue:[
-        ^ (p x + l) @ (p y + t)
+	^ (p x + l) @ (p y + t)
     ].
     ^ p
 !
@@ -8552,25 +8553,25 @@
     newLeft := origin x.
     newTop := origin y.
     ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
-        top := newTop.
-        left := newLeft.
-
-        "
-         if the receiver is visible, or is a topView, perform the
-         operation right away - otherwise, simply remember that the
-         origin has changed - will tell the display once we get realized
-        "
+	top := newTop.
+	left := newLeft.
+
+	"
+	 if the receiver is visible, or is a topView, perform the
+	 operation right away - otherwise, simply remember that the
+	 origin has changed - will tell the display once we get realized
+	"
 "/        (shown
 "/        or:[superView isNil and:[drawableId notNil]]) ifTrue:[
 
-        "/ no, have to do it if drawableId is there
-        "/ (otherwise, we could not move unmapped views around ...
-        "/
-        self drawableId notNil ifTrue:[
-            device moveWindow:self drawableId x:left y:top
-        ] ifFalse:[
-            self originChangedFlag:true
-        ]
+	"/ no, have to do it if drawableId is there
+	"/ (otherwise, we could not move unmapped views around ...
+	"/
+	self drawableId notNil ifTrue:[
+	    device moveWindow:self drawableId x:left y:top
+	] ifFalse:[
+	    self originChangedFlag:true
+	]
     ]
 
     "Modified: / 21-01-2011 / 13:59:08 / cg"
@@ -8607,16 +8608,16 @@
      a dimension <= 0 ... (although I think that 0 makes sense ...)
     "
     newWidth < 1 ifTrue:[
-        newWidth := 1.
+	newWidth := 1.
     ].
     newHeight < 1 ifTrue:[
-        newHeight := 1
+	newHeight := 1
     ].
 
     ((newWidth == width) and:[newHeight == height]) ifTrue:[
-        sameOrigin ifTrue:[^ self].
-        dependents notNil ifTrue:[ self changed:#origin ].
-        ^ self pixelOrigin:origin
+	sameOrigin ifTrue:[^ self].
+	dependents notNil ifTrue:[ self changed:#origin ].
+	^ self pixelOrigin:origin
     ].
 
     top := newTop.
@@ -8624,142 +8625,142 @@
 
 "/    shown ifTrue:[                  "4-nov-94 actually correct,"
     self drawableId notNil ifTrue:[        "but theres a bug in menus when resized while hidden"
-        mustRedrawBottomEdge := (margin ~~ 0) and:[newHeight < height].
-        mustRedrawRightEdge := (margin ~~ 0) and:[newWidth < width].
-
-        ((newHeight <= height) and:[newWidth <= width]) ifTrue:[
-            how := #smaller
-        ] ifFalse:[
-            ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
-                how := #larger
-            ]
-        ].
-
-        mustRepaintRight := false.
-        mustRepaintBottom := false.
-
-        oldWidth := width.
-        oldHeight := height.
-
-        shown ifTrue:[
-            (margin ~~ 0) ifTrue:[
-                "clear the old edges"
-
-                oldPaint := nil.
-                newWidth > width ifTrue:[
-                    self clippingBounds:nil.
-                    oldPaint := self paint.
-                    self paint:viewBackground.
-                    self fillDeviceRectangleX:(width - margin)
-                                            y:0
-                                        width:margin
-                                       height:height.
-                    mustRepaintRight := true.
-                ].
-                newHeight > height ifTrue:[
-                    self clippingBounds:nil.
-                    oldPaint := self paint.
-                    self paint:viewBackground.
-                    self fillDeviceRectangleX:0
-                                            y:(height - margin)
-                                        width:width
-                                       height:margin.
-                    mustRepaintBottom := true.
-                ].
-                oldPaint notNil ifTrue:[ self paint:oldPaint. ]
-            ]
-        ].
-
-        width := newWidth.
-        height := newHeight.
-
-        self setInnerClip.
-
-        "if view becomes smaller, send sizeChanged first"
-        true  "(how == #smaller)" ifTrue:[
-            self sizeChanged:how
-        ].
-
-        "have to tell X, when extent of view is changed"
-        sameOrigin ifTrue:[
-            device resizeWindow:self drawableId width:width height:height.
-        ] ifFalse:[
-            "claus: some xservers seem to do better when resizing
-             first ...."
+	mustRedrawBottomEdge := (margin ~~ 0) and:[newHeight < height].
+	mustRedrawRightEdge := (margin ~~ 0) and:[newWidth < width].
+
+	((newHeight <= height) and:[newWidth <= width]) ifTrue:[
+	    how := #smaller
+	] ifFalse:[
+	    ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
+		how := #larger
+	    ]
+	].
+
+	mustRepaintRight := false.
+	mustRepaintBottom := false.
+
+	oldWidth := width.
+	oldHeight := height.
+
+	shown ifTrue:[
+	    (margin ~~ 0) ifTrue:[
+		"clear the old edges"
+
+		oldPaint := nil.
+		newWidth > width ifTrue:[
+		    self clippingBounds:nil.
+		    oldPaint := self paint.
+		    self paint:viewBackground.
+		    self fillDeviceRectangleX:(width - margin)
+					    y:0
+					width:margin
+				       height:height.
+		    mustRepaintRight := true.
+		].
+		newHeight > height ifTrue:[
+		    self clippingBounds:nil.
+		    oldPaint := self paint.
+		    self paint:viewBackground.
+		    self fillDeviceRectangleX:0
+					    y:(height - margin)
+					width:width
+				       height:margin.
+		    mustRepaintBottom := true.
+		].
+		oldPaint notNil ifTrue:[ self paint:oldPaint. ]
+	    ]
+	].
+
+	width := newWidth.
+	height := newHeight.
+
+	self setInnerClip.
+
+	"if view becomes smaller, send sizeChanged first"
+	true  "(how == #smaller)" ifTrue:[
+	    self sizeChanged:how
+	].
+
+	"have to tell X, when extent of view is changed"
+	sameOrigin ifTrue:[
+	    device resizeWindow:self drawableId width:width height:height.
+	] ifFalse:[
+	    "claus: some xservers seem to do better when resizing
+	     first ...."
 "
-            (how == #smaller) ifTrue:[
-                device resizeWindow:drawableId width:width height:height.
-                device moveWindow:drawableId x:left y:top
-            ] ifFalse:[
-                device moveResizeWindow:drawableId x:left y:top width:width height:height
-            ].
+	    (how == #smaller) ifTrue:[
+		device resizeWindow:drawableId width:width height:height.
+		device moveWindow:drawableId x:left y:top
+	    ] ifFalse:[
+		device moveResizeWindow:drawableId x:left y:top width:width height:height
+	    ].
 "
-            device moveResizeWindow:self drawableId x:left y:top
-                                           width:width height:height.
-        ].
-
-        "if view becomes bigger, send sizeChanged after"
-        false "(how ~~ #smaller)" ifTrue:[
-            self sizeChanged:how
-        ].
-
-        shown ifTrue:[
-            (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
-                border notNil ifTrue:[
-                    mustRedrawBottomEdge ifTrue:[
-                        self invalidateDeviceRectangle:((0 @ (height - margin)) extent:width@margin) repairNow:false.
-                    ].
-                    mustRedrawRightEdge ifTrue:[
-                        self invalidateDeviceRectangle:(((width - margin) @ 0) extent:margin@height) repairNow:false.
-                    ].
-                ] ifFalse:[
-                    self deviceClippingBounds:nil.
-                    oldPaint := self paint.
-                    mustRedrawBottomEdge ifTrue:[
-                        self drawBottomEdge
-                    ].
-                    mustRedrawRightEdge ifTrue:[
-                        self drawRightEdge
-                    ].
-                    self paint:oldPaint.
-                    self deviceClippingBounds:innerClipRect
-                ]
-            ].
-        ].
-
-        mustRepaintRight ifTrue:[
-            self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
-                                           extent:margin@height)
-                                 repairNow:false.
+	    device moveResizeWindow:self drawableId x:left y:top
+					   width:width height:height.
+	].
+
+	"if view becomes bigger, send sizeChanged after"
+	false "(how ~~ #smaller)" ifTrue:[
+	    self sizeChanged:how
+	].
+
+	shown ifTrue:[
+	    (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
+		border notNil ifTrue:[
+		    mustRedrawBottomEdge ifTrue:[
+			self invalidateDeviceRectangle:((0 @ (height - margin)) extent:width@margin) repairNow:false.
+		    ].
+		    mustRedrawRightEdge ifTrue:[
+			self invalidateDeviceRectangle:(((width - margin) @ 0) extent:margin@height) repairNow:false.
+		    ].
+		] ifFalse:[
+		    self deviceClippingBounds:nil.
+		    oldPaint := self paint.
+		    mustRedrawBottomEdge ifTrue:[
+			self drawBottomEdge
+		    ].
+		    mustRedrawRightEdge ifTrue:[
+			self drawRightEdge
+		    ].
+		    self paint:oldPaint.
+		    self deviceClippingBounds:innerClipRect
+		]
+	    ].
+	].
+
+	mustRepaintRight ifTrue:[
+	    self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
+					   extent:margin@height)
+				 repairNow:false.
 "/            self redrawDeviceX:(oldWidth - margin)
 "/                             y:0
 "/                         width:margin
 "/                        height:height.
-        ].
-        mustRepaintBottom ifTrue:[
-            self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
-                                           extent:width@margin)
-                                 repairNow:false.
+	].
+	mustRepaintBottom ifTrue:[
+	    self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
+					   extent:width@margin)
+				 repairNow:false.
 "/            self redrawDeviceX:0
 "/                             y:(oldHeight - margin)
 "/                         width:width
 "/                        height:margin.
-        ].
+	].
     ] ifFalse:[
-        "otherwise memorize the need for a sizeChanged message"
-
-        width := newWidth.
-        height := newHeight.
-        sameOrigin ifFalse:[
-            self originChangedFlag:true.
-        ].
-        self extentChangedFlag:true.
-        subViews notEmptyOrNil ifTrue:[
-            self extentChangedBeforeCreatedFlag:true.
-        ].
+	"otherwise memorize the need for a sizeChanged message"
+
+	width := newWidth.
+	height := newHeight.
+	sameOrigin ifFalse:[
+	    self originChangedFlag:true.
+	].
+	self extentChangedFlag:true.
+	subViews notEmptyOrNil ifTrue:[
+	    self extentChangedBeforeCreatedFlag:true.
+	].
     ].
     sameOrigin ifFalse:[
-        dependents notNil ifTrue:[ self changed:#origin ].
+	dependents notNil ifTrue:[ self changed:#origin ].
     ].
 
     "Modified: / 25.5.1999 / 14:49:56 / cg"
@@ -8773,39 +8774,39 @@
     bw := self borderWidth ? 0.
 
     superView isNil ifTrue:[
-        superWidth := device width + bw.
-        superHeight := device height + bw.
-        superLeft := superTop := 0.
+	superWidth := device width + bw.
+	superHeight := device height + bw.
+	superLeft := superTop := 0.
     ] ifFalse:[
-        inRect := superView viewRectangle.
-        superWidth := inRect width.
-        superHeight := inRect height.
-        superLeft := inRect left.
-        superTop := inRect top.
+	inRect := superView viewRectangle.
+	superWidth := inRect width.
+	superHeight := inRect height.
+	superLeft := inRect left.
+	superTop := inRect top.
     ].
 
     rel := p x.
     rel isInteger ifTrue:[
-        newX := rel
+	newX := rel
     ] ifFalse:[
-        newX := (rel * superWidth) asInteger + superLeft.
-        (bw ~~ 0) ifTrue:[
-            rel ~= 1.0 ifTrue:[
-                newX := newX - bw
-            ]
-        ]
+	newX := (rel * superWidth) asInteger + superLeft.
+	(bw ~~ 0) ifTrue:[
+	    rel ~= 1.0 ifTrue:[
+		newX := newX - bw
+	    ]
+	]
     ].
 
     rel := p y.
     rel isInteger ifTrue:[
-        newY := rel
+	newY := rel
     ] ifFalse:[
-        newY := (rel * superHeight) asInteger + superTop.
-        (bw ~~ 0) ifTrue:[
-            rel ~= 1.0 ifTrue:[
-                newY := newY - bw
-            ]
-        ]
+	newY := (rel * superHeight) asInteger + superTop.
+	(bw ~~ 0) ifTrue:[
+	    rel ~= 1.0 ifTrue:[
+		newY := newY - bw
+	    ]
+	]
     ].
     ^ newX @ newY
 
@@ -8853,17 +8854,17 @@
     |form|
 
     (form := viewShape borderShapeForm) notNil ifTrue:[
-        gc windowBorderShape:form.
+	gc windowBorderShape:form.
     ].
     (form := viewShape viewShapeForm) notNil ifTrue:[
-        gc windowShape:form.
+	gc windowShape:form.
     ].
 
     "Created: 18.9.1997 / 11:09:00 / cg"
 !
 
 windowGroupClass
-        ^ WindowGroup
+	^ WindowGroup
 ! !
 
 !SimpleView methodsFor:'queries'!
@@ -8887,16 +8888,16 @@
     focusViewToCheck == self ifTrue:[ ^ true ].
 
     focusViewToCheck notNil ifTrue:[
-        (focusViewToCheck isComponentOf: self) ifTrue:[ ^ true ].
-
-        "mhmh - is there a delegation to me ?"
-        (delegate := focusViewToCheck delegate) notNil ifTrue:[
-            delegate == self ifTrue:[^ true].
-            "/ no: delegate does not understand this (EnterFieldGroup or KbdForwarder)
-            "/ we will see, if commenting this leads to problems...
-            "/ (delegate isComponentOf: self) ifTrue:[ ^ true ].
-            ^ delegate askFor:#delegatesTo: with:self
-        ]
+	(focusViewToCheck isComponentOf: self) ifTrue:[ ^ true ].
+
+	"mhmh - is there a delegation to me ?"
+	(delegate := focusViewToCheck delegate) notNil ifTrue:[
+	    delegate == self ifTrue:[^ true].
+	    "/ no: delegate does not understand this (EnterFieldGroup or KbdForwarder)
+	    "/ we will see, if commenting this leads to problems...
+	    "/ (delegate isComponentOf: self) ifTrue:[ ^ true ].
+	    ^ delegate askFor:#delegatesTo: with:self
+	]
     ].
     ^ false
 
@@ -8929,11 +8930,11 @@
     savedPref := preferredExtent.
     savedExplicit := explicitExtent.
     [
-        preferredExtent := explicitExtent := nil.
-        computedPref := self preferredExtent.
+	preferredExtent := explicitExtent := nil.
+	computedPref := self preferredExtent.
     ] ensure:[
-        preferredExtent := savedPref.
-        explicitExtent := savedExplicit.
+	preferredExtent := savedPref.
+	explicitExtent := savedExplicit.
     ].
     ^ computedPref
 !
@@ -8946,9 +8947,9 @@
 cornerChangedFlag:aBoolean
     "/ cornerChangedFlag := aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagCornerChanged
+	flagBits := flagBits bitOr:FlagCornerChanged
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagCornerChanged
+	flagBits := flagBits bitClear:FlagCornerChanged
     ].
 !
 
@@ -8971,9 +8972,9 @@
 
 extentChangedBeforeCreatedFlag:aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagExtentChangedBeforeCreated
+	flagBits := flagBits bitOr:FlagExtentChangedBeforeCreated
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagExtentChangedBeforeCreated
+	flagBits := flagBits bitClear:FlagExtentChangedBeforeCreated
     ].
 !
 
@@ -8985,9 +8986,9 @@
 extentChangedFlag:aBoolean
     "/ extentChangedFlag := aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagExtentChanged
+	flagBits := flagBits bitOr:FlagExtentChanged
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagExtentChanged
+	flagBits := flagBits bitClear:FlagExtentChanged
     ].
 !
 
@@ -9018,11 +9019,11 @@
     focusViewToCheck == self ifTrue:[ ^ true ].
 
     focusViewToCheck notNil ifTrue:[
-        "mhmh - is there a delegation to me ?"
-        (delegate := focusViewToCheck delegate) notNil ifTrue:[
-            delegate == self ifTrue:[^ true].
-            ^ delegate askFor:#delegatesTo: with:self
-        ]
+	"mhmh - is there a delegation to me ?"
+	(delegate := focusViewToCheck delegate) notNil ifTrue:[
+	    delegate == self ifTrue:[^ true].
+	    ^ delegate askFor:#delegatesTo: with:self
+	]
     ].
     ^ false
 
@@ -9059,7 +9060,7 @@
     sview := self.
 
     [ (sview := sview container) notNil ] whileTrue:[
-        sview == aViewOrComponent ifTrue:[^ true].
+	sview == aViewOrComponent ifTrue:[^ true].
     ].
     ^ false
 !
@@ -9202,9 +9203,9 @@
 originChangedFlag:aBoolean
     "/ originChangedFlag := aBoolean
     aBoolean ifTrue:[
-        flagBits := flagBits bitOr:FlagOriginChanged
+	flagBits := flagBits bitOr:FlagOriginChanged
     ] ifFalse:[
-        flagBits := flagBits bitClear:FlagOriginChanged
+	flagBits := flagBits bitClear:FlagOriginChanged
     ].
 !
 
@@ -9214,10 +9215,10 @@
     newBits := flagBits bitClear:(FlagOriginChanged bitOr: FlagExtentChanged).
 
     originChanged ifTrue:[
-        newBits := newBits bitOr:FlagOriginChanged
+	newBits := newBits bitOr:FlagOriginChanged
     ].
     extentChanged ifTrue:[
-        newBits := newBits bitOr:FlagExtentChanged
+	newBits := newBits bitOr:FlagExtentChanged
     ].
 
     flagBits := newBits.
@@ -9229,13 +9230,13 @@
     newBits := flagBits bitClear:((FlagOriginChanged bitOr: FlagExtentChanged) bitOr: FlagCornerChanged).
 
     originChanged ifTrue:[
-        newBits := newBits bitOr:FlagOriginChanged
+	newBits := newBits bitOr:FlagOriginChanged
     ].
     extentChanged ifTrue:[
-        newBits := newBits bitOr:FlagExtentChanged
+	newBits := newBits bitOr:FlagExtentChanged
     ].
     cornerChanged ifTrue:[
-        newBits := newBits bitOr:FlagCornerChanged
+	newBits := newBits bitOr:FlagCornerChanged
     ].
 
     flagBits := newBits.
@@ -9269,48 +9270,48 @@
 
     "/ If I have an explicit preferredExtent..
     explicitExtent notNil ifTrue:[
-        ^ explicitExtent
+	^ explicitExtent
     ].
 
     "/ If I have a cached preferredExtent value..
     preferredExtent notNil ifTrue:[
-        ^ preferredExtent
+	^ preferredExtent
     ].
 
     "/ mhmh - if I have subViews, collect their
     "/ preferred bounds ...
 
     subViews notNil ifTrue:[
-        maxX := maxY := 0.
-        subViews do:[:aSubView |
-            |org corn|
-
-            org := aSubView computeOrigin.
-            corn := org + aSubView preferredExtent.
-            maxX := maxX max:corn x.
-            maxY := maxY max:corn y.
-        ]
+	maxX := maxY := 0.
+	subViews do:[:aSubView |
+	    |org corn|
+
+	    org := aSubView computeOrigin.
+	    corn := org + aSubView preferredExtent.
+	    maxX := maxX max:corn x.
+	    maxY := maxY max:corn y.
+	]
     ].
 
     "/ mhmh - if I have components, collect their preferred bounds ...
     components notNil ifTrue:[
-        maxX isNil ifTrue:[
-            maxX := maxY := 0.
-        ].
-        components do:[:aComponent |
-            |bounds org corn|
-
-            bounds := aComponent preferredBounds.
-            corn := bounds corner.
-            maxX := maxX max:corn x.
-            maxY := maxY max:corn y.
-        ]
+	maxX isNil ifTrue:[
+	    maxX := maxY := 0.
+	].
+	components do:[:aComponent |
+	    |bounds org corn|
+
+	    bounds := aComponent preferredBounds.
+	    corn := bounds corner.
+	    maxX := maxX max:corn x.
+	    maxY := maxY max:corn y.
+	]
     ].
 
     "/ nothing found - return the actual size
 
     maxX isNil ifTrue:[
-        ^ self extent.
+	^ self extent.
     ].
 
     ^ maxX @ maxY.
@@ -9393,7 +9394,7 @@
      Actually, its a historical leftover"
 
     windowGroup notNil ifTrue:[
-        ^ windowGroup sensor hasButtonMotionEventFor:self
+	^ windowGroup sensor hasButtonMotionEventFor:self
     ].
     ^ super buttonMotionEventPending
 
@@ -9411,7 +9412,7 @@
 
     myClass := self class.
     (myClass == View or:[myClass == SimpleView]) ifTrue:[
-        ^ ViewSpec "/ CompositeSpecCollection
+	^ ViewSpec "/ CompositeSpecCollection
     ].
 
     "/ try: appending 'Spec' to my classes name
@@ -9419,8 +9420,8 @@
     myName := self class name.
     cls := Smalltalk classNamed:(myName , 'Spec').
     cls notNil ifTrue:[
-        cls := cls autoload.
-        (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
+	cls := cls autoload.
+	(cls isSubclassOf:UISpecification) ifTrue:[^ cls].
     ].
 
     (myName endsWith:'View') ifTrue:[
@@ -9431,12 +9432,12 @@
 "/            (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
 "/        ].
 
-        "/ try with 'View' replaced by 'Spec'
-        cls := Smalltalk classNamed:((myName copyButLast:4) , 'View').
-        cls notNil ifTrue:[
-            cls := cls autoload.
-            (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
-        ]
+	"/ try with 'View' replaced by 'Spec'
+	cls := Smalltalk classNamed:((myName copyButLast:4) , 'View').
+	cls notNil ifTrue:[
+	    cls := cls autoload.
+	    (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
+	]
     ].
 
     "/ fall back for all others
@@ -9454,10 +9455,10 @@
     "return a symbol describing my style (one of: #dialog, #popUp or #normal)"
 
     self isPopUpView ifTrue:[
-        ^ #popUp
+	^ #popUp
     ].
     self isMDIChildView ifTrue:[
-        ^ #mdiChild
+	^ #mdiChild
     ].
     ^ #normal
 
@@ -9491,11 +9492,11 @@
      This does not make the view visible (needs a #map for that)"
 
     self drawableId isNil ifTrue:[
-        "
-         make certain that superview is created also
-        "
-        superView notNil ifTrue:[
-             superView view create.
+	"
+	 make certain that superview is created also
+	"
+	superView notNil ifTrue:[
+	     superView view create.
 
 "/            "and put my controller into the superviews controller list"
 "/            controller notNil ifTrue:[
@@ -9503,43 +9504,43 @@
 "/                    controller manager:(superView controller manager)
 "/                ]
 "/            ]
-        ] ifFalse:[
-            device isNil ifTrue:[ device := Screen current ].
-            "/
-            "/ if the display is not already dispatching events,
-            "/ this starts the event process.
-            "/
-            device startDispatch
-        ].
-
-        cursor notNil ifTrue:[
-            cursor := cursor onDevice:device.
-        ].
-
-        self extentChangedBeforeCreatedFlag ifTrue:[
-            "/ this is true, if the extent was changed before
-            "/ this view was created (and therefore, no sizeChangeEvent
-            "/ was sent to me, which would notify children.)
-            "/ have to do this here.
-            self sizeChanged:nil.   "/ must tell children (if any)
-        ].
-        self hasExplicitExtent ifFalse:[
-            self resize
-        ].
-
-        self physicalCreate.
-
-        viewBackground notNil ifTrue:[
-           self setViewBackground
-        ].
-
-        self initEvents.
-
-        "
-         this is the first create,
-         force sizechange messages to be sent to the view
-        "
-        self originChangedFlag:true extentChangedFlag:true
+	] ifFalse:[
+	    device isNil ifTrue:[ device := Screen current ].
+	    "/
+	    "/ if the display is not already dispatching events,
+	    "/ this starts the event process.
+	    "/
+	    device startDispatch
+	].
+
+	cursor notNil ifTrue:[
+	    cursor := cursor onDevice:device.
+	].
+
+	self extentChangedBeforeCreatedFlag ifTrue:[
+	    "/ this is true, if the extent was changed before
+	    "/ this view was created (and therefore, no sizeChangeEvent
+	    "/ was sent to me, which would notify children.)
+	    "/ have to do this here.
+	    self sizeChanged:nil.   "/ must tell children (if any)
+	].
+	self hasExplicitExtent ifFalse:[
+	    self resize
+	].
+
+	self physicalCreate.
+
+	viewBackground notNil ifTrue:[
+	   self setViewBackground
+	].
+
+	self initEvents.
+
+	"
+	 this is the first create,
+	 force sizechange messages to be sent to the view
+	"
+	self originChangedFlag:true extentChangedFlag:true
     ]
 
     "Modified: 28.3.1997 / 13:50:17 / cg"
@@ -9550,7 +9551,7 @@
 
     self drawableId isNil ifTrue:[self create].
     subViews notNil ifTrue:[
-        subViews do:[:subView | subView createWithAllSubViews]
+	subViews do:[:subView | subView createWithAllSubViews]
     ]
 !
 
@@ -9566,10 +9567,10 @@
      is always sent."
 
     shadowColor notNil ifTrue:[
-        shadowColor := shadowColor onDevice:device
+	shadowColor := shadowColor onDevice:device
     ].
     lightColor notNil ifTrue:[
-        lightColor := lightColor onDevice:device
+	lightColor := lightColor onDevice:device
     ].
 
     "Created: 13.1.1997 / 21:51:59 / cg"
@@ -9588,25 +9589,25 @@
      slowly migrating to use layoutObjects ...
     "
     layout notNil ifTrue:[
-        superView notNil ifTrue:[
-            (self originOrExtentOrCornerChanged) ifTrue:[
-                layout isAssociation ifTrue:[
-                    layout key == #extent ifTrue:[
-                        org := 1@1.
-                        ext := layout value.
-                    ] ifFalse:[
-                        self shouldImplement.
-                    ].
-                ] ifFalse:[
-                    r := (layout rectangleRelativeTo:(superView viewRectangle)
-                                           preferred:[self preferredBounds]).
-                    org := r origin rounded.
-                    ext := r extent rounded.
-                ].
-                self pixelOrigin:org extent:ext.
-            ].
-        ].
-        ^ self.
+	superView notNil ifTrue:[
+	    (self originOrExtentOrCornerChanged) ifTrue:[
+		layout isAssociation ifTrue:[
+		    layout key == #extent ifTrue:[
+			org := 1@1.
+			ext := layout value.
+		    ] ifFalse:[
+			self shouldImplement.
+		    ].
+		] ifFalse:[
+		    r := (layout rectangleRelativeTo:(superView viewRectangle)
+					   preferred:[self preferredBounds]).
+		    org := r origin rounded.
+		    ext := r extent rounded.
+		].
+		self pixelOrigin:org extent:ext.
+	    ].
+	].
+	^ self.
     ].
 
     "if the extent is not the one we created the window with ..."
@@ -9618,20 +9619,20 @@
     self originChangedFlag ifTrue:[
 "/        org := self computeOrigin.
 "/        self pixelOrigin:org.
-        originRule notNil ifTrue:[
-            self pixelOrigin:self computeOrigin
-        ] ifFalse:[
-            relativeOrigin notNil ifTrue:[
-                self originFromRelativeOrigin:relativeOrigin
-            ] ifFalse:[
-                shown ifTrue:[
-                    device moveWindow:self drawableId x:left y:top.
-                ] ifFalse:[
-                    self pixelOrigin:left@top
-                ].
-            ].
-        ].
-        self originChangedFlag:false
+	originRule notNil ifTrue:[
+	    self pixelOrigin:self computeOrigin
+	] ifFalse:[
+	    relativeOrigin notNil ifTrue:[
+		self originFromRelativeOrigin:relativeOrigin
+	    ] ifFalse:[
+		shown ifTrue:[
+		    device moveWindow:self drawableId x:left y:top.
+		] ifFalse:[
+		    self pixelOrigin:left@top
+		].
+	    ].
+	].
+	self originChangedFlag:false
     ]
 
     "Modified: 18.6.1996 / 21:44:03 / cg"
@@ -9652,24 +9653,24 @@
 
     realized ifFalse:[^ self].
     (windowGroup notNil and:[windowGroup isModal]) ifTrue:[
-        masterGroup := windowGroup previousGroup.
-        windowGroup focusView:nil.
+	masterGroup := windowGroup previousGroup.
+	windowGroup focusView:nil.
     ].
 
     self unmap.
     self flush.
 
     masterGroup notNil ifTrue:[
-        "
-         this is a kludge for IRIS and others which do not provide backingstore:
-         when we hide a modalbox (such as a searchbox) which covered
-         a scrollbar, the scrollbars bitblt-method will copy from the
-         not-yet redrawn area - effectively clearing the scroller.
-         We need a short delay here, since at this time, the expose event has
-         not yet arrived.
-        "
-        Delay waitForSeconds:0.05.
-        masterGroup processExposeEvents
+	"
+	 this is a kludge for IRIS and others which do not provide backingstore:
+	 when we hide a modalbox (such as a searchbox) which covered
+	 a scrollbar, the scrollbars bitblt-method will copy from the
+	 not-yet redrawn area - effectively clearing the scroller.
+	 We need a short delay here, since at this time, the expose event has
+	 not yet arrived.
+	"
+	Delay waitForSeconds:0.05.
+	masterGroup processExposeEvents
     ].
 
 "/    WindowGroup leaveSignal raise.
@@ -9689,7 +9690,7 @@
      ignored here."
 
     self isPopUpView ifTrue:[
-        self hide
+	self hide
     ].
     ^ self
 !
@@ -9699,8 +9700,8 @@
      For topViews, the windowManager will choose (or ask for) the
      views position on the screen.
      Notice:
-        Actually, this method is only valid for topViews;
-        however, it is defined here to allow things like 'Button new realize'"
+	Actually, this method is only valid for topViews;
+	however, it is defined here to allow things like 'Button new realize'"
 
     self mapAt:nil iconified:false
 
@@ -9712,8 +9713,8 @@
      For topViews, if aPoint is nonNil, the views origin is located there
      (unless you have a dictator as windowManager ;-)
      Notice:
-        Actually, this method is only valid for topViews;
-        however, it is defined here to allow things like 'Button new realize'"
+	Actually, this method is only valid for topViews;
+	however, it is defined here to allow things like 'Button new realize'"
 
     self mapAt:aPoint iconified:false
 
@@ -9726,61 +9727,61 @@
      (unless you have a dictator as windowManager ;-).
      If the iconified argument is true, the window is created as icon initially.
      Notice:
-        Actually, this method is only valid for topViews;
-        however, it is defined here to allow things like 'Button new realize'"
+	Actually, this method is only valid for topViews;
+	however, it is defined here to allow things like 'Button new realize'"
 
     |subs|
 
     realized ifFalse:[
-        self drawableId isNil ifTrue:[
-            "
-             first time ?
-             yes, realize (implies a map)
-            "
-            self realizeKeepingGroup:false at:aPoint iconified:iconified
-        ] ifFalse:[
-            "
-             no, map only
-            "
-            realized := true.
-            aPoint isNil ifTrue:[
-                iconified ifTrue:[
-                    device
-                        mapView:self id:self drawableId iconified:iconified
-                        atX:0 y:0
-                        width:width height:height
-                        minExtent:(self minExtent) maxExtent:(self maxExtent).
-                ] ifFalse:[
-                    device mapWindow:self drawableId.
-                ]
-            ] ifFalse:[
-                left := aPoint x.
-                top := aPoint y.
-                device
-                    mapView:self id:self drawableId iconified:iconified
-                    atX:left y:top
-                    width:width height:height
-                    minExtent:(self minExtent) maxExtent:(self maxExtent).
-            ].
-
-            "/
-            "/ implies that all realized subviews
-            "/ are now also mapped
-            "/
-            "/ not needed for topViews - the mapped event does exactly the same
-            "/ however, X does not generate mapped events for non-topViews
-            "/ when a view gets deiconified.
-
-            superView notNil ifTrue:[
-                (subs := self subViews) notNil ifTrue:[
-                    subs do:[:v |
-                        v realized "shown" ifFalse:[
-                            v mapped
-                        ]
-                    ]
-                ]
-            ]
-        ].
+	self drawableId isNil ifTrue:[
+	    "
+	     first time ?
+	     yes, realize (implies a map)
+	    "
+	    self realizeKeepingGroup:false at:aPoint iconified:iconified
+	] ifFalse:[
+	    "
+	     no, map only
+	    "
+	    realized := true.
+	    aPoint isNil ifTrue:[
+		iconified ifTrue:[
+		    device
+			mapView:self id:self drawableId iconified:iconified
+			atX:0 y:0
+			width:width height:height
+			minExtent:(self minExtent) maxExtent:(self maxExtent).
+		] ifFalse:[
+		    device mapWindow:self drawableId.
+		]
+	    ] ifFalse:[
+		left := aPoint x.
+		top := aPoint y.
+		device
+		    mapView:self id:self drawableId iconified:iconified
+		    atX:left y:top
+		    width:width height:height
+		    minExtent:(self minExtent) maxExtent:(self maxExtent).
+	    ].
+
+	    "/
+	    "/ implies that all realized subviews
+	    "/ are now also mapped
+	    "/
+	    "/ not needed for topViews - the mapped event does exactly the same
+	    "/ however, X does not generate mapped events for non-topViews
+	    "/ when a view gets deiconified.
+
+	    superView notNil ifTrue:[
+		(subs := self subViews) notNil ifTrue:[
+		    subs do:[:v |
+			v realized "shown" ifFalse:[
+			    v mapped
+			]
+		    ]
+		]
+	    ]
+	].
     ]
 
     "Modified: 23.8.1996 / 14:53:55 / stefan"
@@ -9842,28 +9843,28 @@
 "/        ]
 "/    ].
     (viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
-        gc viewGravity:viewGravity.
+	gc viewGravity:viewGravity.
     ].
     (bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
-        isInputOnly ifFalse:[
-            gc bitGravity:bitGravity.
-        ]
+	isInputOnly ifFalse:[
+	    gc bitGravity:bitGravity.
+	]
     ].
     viewShape notNil ifTrue:[
-        self setViewShape
+	self setViewShape
     ].
     (backed notNil and:[backed ~~ false]) ifTrue:[
-        self backingStore:backed.
+	self backingStore:backed.
     ].
     self saveUnder ifTrue:[
-        self saveUnder:true.
+	self saveUnder:true.
     ].
     cursor notNil ifTrue:[
-        self setCursor
+	self setCursor
     ].
 
     name notNil ifTrue:[
-        self windowName:name.
+	self windowName:name.
     ].
 
     "Modified: / 9.4.1998 / 20:18:12 / cg"
@@ -9902,14 +9903,14 @@
     "realize all my subviews - but not myself."
 
     subViews notNil ifTrue:[
-        subViews do:[:subView |
-            subView realize
-        ]
+	subViews do:[:subView |
+	    subView realize
+	]
     ].
     components notNil ifTrue:[
-        components do:[:component |
-            component realize
-        ]
+	components do:[:component |
+	    component realize
+	]
     ].
 
     "Modified: 5.9.1995 / 23:30:47 / claus"
@@ -9952,11 +9953,11 @@
     self fetchDeviceResources.
 
     self drawableId isNil ifTrue:[
-        self create.
-        self drawableId isNil ifTrue:[
-            ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
-            ^ self
-        ]
+	self create.
+	self drawableId isNil ifTrue:[
+	    ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
+	    ^ self
+	]
     ].
 
     self isBeingDestroyed:false. "/ in case a view gets rerealized
@@ -9965,85 +9966,85 @@
     (windowGroup notNil
      and:[superView isNil
      and:[windowGroup isForModalSubview]]) ifTrue:[
-        keep := true.
+	keep := true.
     ] ifFalse:[
-        keep := keepGroupAsIs
+	keep := keepGroupAsIs
     ].
 
     keep ifFalse:[
-        "
-         put myself into superviews windowgroup if there is a superview
-         This is the default behavior, which may be suppressed by
-         passing true as keepGroupAsIs-argument.
-         (it may be useful to assign a separate windowGroup to
-          a childView to have it execute independent of the parent
-          -> an example is found in the fileBrowsers kill-button)
-        "
-        superView notNil ifTrue:[
-            superGroup := superView windowGroup.
-            (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
-                "
-                 mhmh - seems that the windowgroup has changed ....
-                "
+	"
+	 put myself into superviews windowgroup if there is a superview
+	 This is the default behavior, which may be suppressed by
+	 passing true as keepGroupAsIs-argument.
+	 (it may be useful to assign a separate windowGroup to
+	  a childView to have it execute independent of the parent
+	  -> an example is found in the fileBrowsers kill-button)
+	"
+	superView notNil ifTrue:[
+	    superGroup := superView windowGroup.
+	    (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
+		"
+		 mhmh - seems that the windowgroup has changed ....
+		"
 "/                'oops - wgroup change on realize' printNL.
-                groupChange := true.
-
-                "/
-                "/ recursively change the windowGroup of
-                "/ myself and all of my children
-                "/
-                self windowGroup:superGroup.
-            ] ifFalse:[
-                windowGroup isNil ifTrue:[
-                    "/
-                    "/ only change the group of myself -
-                    "/ subviews will fetch it when realized.
-                    "/
-                    windowGroup := superGroup.
-                    superGroup notNil ifTrue:[superGroup addView:self].
-                ]
-            ].
-        ].
+		groupChange := true.
+
+		"/
+		"/ recursively change the windowGroup of
+		"/ myself and all of my children
+		"/
+		self windowGroup:superGroup.
+	    ] ifFalse:[
+		windowGroup isNil ifTrue:[
+		    "/
+		    "/ only change the group of myself -
+		    "/ subviews will fetch it when realized.
+		    "/
+		    windowGroup := superGroup.
+		    superGroup notNil ifTrue:[superGroup addView:self].
+		]
+	    ].
+	].
     ].
 
     (self originOrExtentChanged) ifTrue:[
-        self fixSize.
-        self sizeChanged:nil.
+	self fixSize.
+	self sizeChanged:nil.
     ].
     position notNil ifTrue:[
-        self origin:position.
+	self origin:position.
     ].
 
     (subViews notNil or:[components notNil]) ifTrue:[
-        (realized not or:[groupChange]) ifTrue:[
-            self isHiddenOnRealize ifFalse:[
-                self realizeAllSubViews.
-            ].
-        ].
+	(realized not or:[groupChange]) ifTrue:[
+	    self isHiddenOnRealize ifFalse:[
+		self realizeAllSubViews.
+	    ].
+	].
     ].
 
     self preRealize.
 
     iconified ifTrue:[
-        realized ifFalse:[
-            self mapIconified
-        ]
+	realized ifFalse:[
+	    self mapIconified
+	]
     ] ifFalse:[
-        (self isHiddenOnRealize not
-         and:[visibilityChannel isNil or:[visibilityChannel value]]) ifTrue:[
-            self setInnerClip.
-
-            realized ifFalse:[
-                "
-                 now, make the view visible
-                "
-                self mapAt:position
-            ]
-        ]
+	(self isHiddenOnRealize not
+	 and:[visibilityChannel isNil or:[visibilityChannel value]]) ifTrue:[
+	    self setInnerClip.
+
+	    realized ifFalse:[
+		"
+		 now, make the view visible
+		"
+		self mapAt:position
+	    ]
+	]
     ].
 
     controller notNil ifTrue:[
-        controller startUp
+	controller startUp
     ].
 
     self postRealize
@@ -10057,22 +10058,22 @@
     "recreate (i.e. tell X about me) after a snapin or a migration"
 
     self drawableId isNil ifTrue:[
-        super recreate.
-        self physicalCreate.
-
-        viewBackground notNil ifTrue:[
-            self setViewBackground
-        ].
-
-        "
-         XXX has to be changed: eventmasks are device specific -
-         XXX will not allow restart on another Workstation-type.
-         XXX event masks must become symbolic
-        "
-        eventMask isNil ifTrue:[
-            eventMask := device defaultEventMask
-        ].
-        device setEventMask:eventMask in:self drawableId
+	super recreate.
+	self physicalCreate.
+
+	viewBackground notNil ifTrue:[
+	    self setViewBackground
+	].
+
+	"
+	 XXX has to be changed: eventmasks are device specific -
+	 XXX will not allow restart on another Workstation-type.
+	 XXX event masks must become symbolic
+	"
+	eventMask isNil ifTrue:[
+	    eventMask := device defaultEventMask
+	].
+	device setEventMask:eventMask in:self drawableId
     ]
 !
 
@@ -10080,16 +10081,16 @@
     "realize all my subviews and all of their subviews - but not myself."
 
     subViews notNil ifTrue:[
-        subViews do:[:subView |
-            subView realize.
-            subView recursiveRealizeAllSubViews.
-        ]
+	subViews do:[:subView |
+	    subView realize.
+	    subView recursiveRealizeAllSubViews.
+	]
     ].
     components notNil ifTrue:[
-        components do:[:component |
-            component realize.
-            component recursiveRealizeAllSubViews.
-        ]
+	components do:[:component |
+	    component realize.
+	    component recursiveRealizeAllSubViews.
+	]
     ].
 !
 
@@ -10100,18 +10101,18 @@
      are known to ignore this ..."
 
     realized ifFalse:[
-        self drawableId isNil ifTrue:[
-            self realize
-        ] ifFalse:[    
-            "
-             now, make the view visible
-            "
-            realized := true.
-            device
-                mapView:self id:self drawableId iconified:false
-                atX:left y:top width:width height:height
-                minExtent:(self minExtent) maxExtent:(self maxExtent)
-        ]
+	self drawableId isNil ifTrue:[
+	    self realize
+	] ifFalse:[
+	    "
+	     now, make the view visible
+	    "
+	    realized := true.
+	    device
+		mapView:self id:self drawableId iconified:false
+		atX:left y:top width:width height:height
+		minExtent:(self minExtent) maxExtent:(self maxExtent)
+	]
     ]
 
     "Created: 8.5.1996 / 09:33:06 / cg"
@@ -10134,14 +10135,14 @@
 
     self drawableId isNil ifTrue:[self create].
     self drawableId notNil ifTrue:[
-        aWindowGroup ~~ windowGroup ifTrue:[
-            windowGroup notNil ifTrue:[
-                windowGroup removeView:self
-            ].
-            windowGroup := aWindowGroup.
-            aWindowGroup addTopView:self.
-        ].
-        self remap.
+	aWindowGroup ~~ windowGroup ifTrue:[
+	    windowGroup notNil ifTrue:[
+		windowGroup removeView:self
+	    ].
+	    windowGroup := aWindowGroup.
+	    aWindowGroup addTopView:self.
+	].
+	self remap.
     ]
 
     "Modified: 3.5.1996 / 23:59:30 / stefan"
@@ -10152,17 +10153,17 @@
     "rerealize myself with all subviews"
 
     self drawableId notNil ifTrue:[
-        realized := true.
-        self realizeAllSubViews.
-        superView isNil ifTrue:[
-            device
-                mapView:self id:self drawableId iconified:false
-                atX:left y:top width:width height:height
-                minExtent:(self minExtent) maxExtent:(self maxExtent)
-        ] ifFalse:[
-            device
-                mapWindow:self drawableId
-        ].
+	realized := true.
+	self realizeAllSubViews.
+	superView isNil ifTrue:[
+	    device
+		mapView:self id:self drawableId iconified:false
+		atX:left y:top width:width height:height
+		minExtent:(self minExtent) maxExtent:(self maxExtent)
+	] ifFalse:[
+	    device
+		mapWindow:self drawableId
+	].
     ]
 
     "Modified: 28.1.1997 / 17:59:28 / cg"
@@ -10174,10 +10175,10 @@
      preferredExtent), but may be redefined in some subclasses."
 
     self hasExplicitExtent ifFalse:[
-        layout isNil ifTrue:[
-            self extent:(self preferredExtent).
-            self explicitExtent:false.
-        ].
+	layout isNil ifTrue:[
+	    self extent:(self preferredExtent).
+	    self explicitExtent:false.
+	].
     ]
 
     "Modified: 15.7.1996 / 11:20:27 / cg"
@@ -10194,24 +10195,24 @@
     "unmap the view - the view stays created (but invisible), and can be remapped again later."
 
     realized ifTrue:[
-        realized := false.
-        self drawableId notNil ifTrue:[
-            device unmapWindow:self drawableId.
-
-            "/ make it go away immediately
-            "/ (this hides the subview killing)
-            self flush.
-        ].
-
-        "/ Normally, this is not correct with X, where the
-        "/ unmap is an asynchronous operation.
-        "/ (shown is cleared also in unmapped event)
-        "/ Do it anyway, to avoid synchronisation problems.
-
-        shown ifTrue:[
-            shown := false.
-            dependents notNil ifTrue:[ self changed:#visibility ].
-        ]
+	realized := false.
+	self drawableId notNil ifTrue:[
+	    device unmapWindow:self drawableId.
+
+	    "/ make it go away immediately
+	    "/ (this hides the subview killing)
+	    self flush.
+	].
+
+	"/ Normally, this is not correct with X, where the
+	"/ unmap is an asynchronous operation.
+	"/ (shown is cleared also in unmapped event)
+	"/ Do it anyway, to avoid synchronisation problems.
+
+	shown ifTrue:[
+	    shown := false.
+	    dependents notNil ifTrue:[ self changed:#visibility ].
+	]
     ].
 
     "
@@ -10221,9 +10222,9 @@
      top extent:200@200.
 
      sub := View
-                origin:0.2@0.2
-                corner:0.8@0.8
-                in:top.
+		origin:0.2@0.2
+		corner:0.8@0.8
+		in:top.
 
      sub viewBackground:Color red.
      sub hiddenOnRealize:true.
@@ -10263,11 +10264,11 @@
 
 drawFocusFrame
     self hasFocus ifTrue:[
-        (styleSheet at:#focusHighlightStyle) == #win95 ifTrue:[
-            self windowGroup focusCameByTab ifTrue:[
-                self drawWin95FocusFrame
-            ]
-        ].
+	(styleSheet at:#focusHighlightStyle) == #win95 ifTrue:[
+	    self windowGroup focusCameByTab ifTrue:[
+		self drawWin95FocusFrame
+	    ]
+	].
     ]
 !
 
@@ -10322,16 +10323,16 @@
 
     self fill:flashColor.
     messageOrNil notNil ifTrue:[
-        self withForeground:self whiteColor do:[
-            self displayString:messageOrNil centeredAt:(self center).
-        ].
+	self withForeground:self whiteColor do:[
+	    self displayString:messageOrNil centeredAt:(self center).
+	].
     ].
     Delay waitForSeconds:0.1.
     self fill:self whiteColor.
     messageOrNil notNil ifTrue:[
-        self withForeground:self blackColor do:[
-            self displayString:messageOrNil centeredAt:(self center).
-        ].
+	self withForeground:self blackColor do:[
+	    self displayString:messageOrNil centeredAt:(self center).
+	].
     ].
     Delay waitForSeconds:0.1.
     self fill:viewBackground.
@@ -10365,13 +10366,13 @@
      until the receiver's windowGroupProcess gets rescheduled."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     self
-        invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
-        repairNow:false
+	invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
+	repairNow:false
 
     "Modified: / 9.11.1998 / 21:04:16 / cg"
 !
@@ -10386,9 +10387,9 @@
      intil the receiver's windowGroupProcess gets rescheduled."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     self invalidate:aRectangle repairNow:false
 
@@ -10404,15 +10405,15 @@
     |r currentTransformation|
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
 
     r := aRectangle.
     currentTransformation := gc transformation.
     currentTransformation notNil ifTrue:[
-        r := (currentTransformation transformPoint:r origin) corner:(currentTransformation transformPoint:r corner).
+	r := (currentTransformation transformPoint:r origin) corner:(currentTransformation transformPoint:r corner).
     ].
     self invalidateDeviceRectangle:r repairNow:doRepairNow
 
@@ -10427,17 +10428,17 @@
      The given rectangle is in device coordinate space."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     (aRectangle width <= 0 or:[aRectangle height <= 0]) ifTrue:[
-        "/ no need to add damages with extent <= 0
-        ^ self
+	"/ no need to add damages with extent <= 0
+	^ self
     ].
     self sensor addDamage:aRectangle view:self.
     doRepairNow ifTrue:[
-        self repairDamage
+	self repairDamage
     ]
 
     "Modified: / 10.11.1998 / 01:55:03 / cg"
@@ -10450,13 +10451,13 @@
      damaged areas right now."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     self
-        invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
-        repairNow:doRepair
+	invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
+	repairNow:doRepair
 
     "Created: 19.4.1997 / 11:58:04 / cg"
     "Modified: 19.4.1997 / 12:00:00 / cg"
@@ -10466,9 +10467,9 @@
     "add a damage to redraw all of the receiver, to its input event queue."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     self invalidate:(Rectangle left:x top:y width:w height:h)
 !
@@ -10479,9 +10480,9 @@
      damaged areas right now."
 
     shown ifFalse:[
-        "/ no need to add damage - will get a full-redraw anyway,
-        "/ when I will be shown again.
-        ^ self
+	"/ no need to add damage - will get a full-redraw anyway,
+	"/ when I will be shown again.
+	^ self
     ].
     self invalidate:(Rectangle left:x top:y width:w height:h) repairNow:doRepair
 !
@@ -10499,24 +10500,24 @@
     "redraw a part of the view immediately."
 
     self
-        redrawX:(aRectangle left)
-              y:(aRectangle top)
-          width:(aRectangle width)
-         height:(aRectangle height)
+	redrawX:(aRectangle left)
+	      y:(aRectangle top)
+	  width:(aRectangle width)
+	 height:(aRectangle height)
 
     "Modified: 19.4.1997 / 11:54:23 / cg"
 !
 
 redrawComponentsIn:aRectangle
     components notNil ifTrue:[
-        components do:[:aComponent |
-            |thisFrame is|
-
-            thisFrame := aComponent bounds.
-            (thisFrame notNil and:[thisFrame intersects:aRectangle]) ifTrue:[
-                aComponent displayOn:self
-            ]
-        ]
+	components do:[:aComponent |
+	    |thisFrame is|
+
+	    thisFrame := aComponent bounds.
+	    (thisFrame notNil and:[thisFrame intersects:aRectangle]) ifTrue:[
+		aComponent displayOn:self
+	    ]
+	]
     ].
 !
 
@@ -10530,15 +10531,15 @@
 
     currentTransformation := gc transformation.
     currentTransformation isNil ifTrue:[
-        lx := x.
-        ly := y.
-        lw := w.
-        lh := h.
+	lx := x.
+	ly := y.
+	lw := w.
+	lh := h.
     ] ifFalse:[
-        lx := currentTransformation applyInverseToX:x.
-        ly := currentTransformation applyInverseToY:y.
-        lw := currentTransformation applyInverseScaleX:w.
-        lh := currentTransformation applyInverseScaleY:h.
+	lx := currentTransformation applyInverseToX:x.
+	ly := currentTransformation applyInverseToY:y.
+	lw := currentTransformation applyInverseScaleX:w.
+	lh := currentTransformation applyInverseScaleY:h.
     ].
     self redrawX:lx y:ly width:lw height:lh
 !
@@ -10558,7 +10559,7 @@
     self clippingBounds:area.
 
     self clearExposedAreaInRedraw ifTrue:[
-        self clearRectangleX:x y:y width:w height:h.
+	self clearRectangleX:x y:y width:w height:h.
     ].
 
     self renderOrRedraw.
@@ -10572,12 +10573,12 @@
 
 renderOrRedraw
     renderer notNil ifTrue:[
-        "/ experimental feature
-        thisContext isRecursive ifTrue:[self halt].
-        renderer render:self on:self at:0@0
+	"/ experimental feature
+	thisContext isRecursive ifTrue:[self halt].
+	renderer render:self on:self at:0@0
     ] ifFalse:[
-        "/ redraw everything - a fallBack for lazy views.
-        self redraw.
+	"/ redraw everything - a fallBack for lazy views.
+	self redraw.
     ].
 !
 
@@ -10588,10 +10589,10 @@
     |wg|
 
     shown ifTrue:[
-        (wg := self windowGroup) notNil ifTrue:[
-            "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
-            wg processExposeEventsFor:self.        "/ this handles map/unmap
-        ]
+	(wg := self windowGroup) notNil ifTrue:[
+	    "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
+	    wg processExposeEventsFor:self.        "/ this handles map/unmap
+	]
     ]
 
     "Created: / 19.4.1997 / 12:01:13 / cg"
@@ -10692,10 +10693,10 @@
     wCont := self widthOfContents.
     currentTransformation := gc transformation.
     currentTransformation notNil ifTrue:[
-        wCont := currentTransformation applyScaleX:wCont.
+	wCont := currentTransformation applyScaleX:wCont.
     ].
     self scrollHorizontalTo:
-            ((((wCont * percent) / 100.0) + 0.5) asInteger)
+	    ((((wCont * percent) / 100.0) + 0.5) asInteger)
 !
 
 scrollLeft
@@ -10711,8 +10712,8 @@
     |viewOrigin|
 
     nPixels ~~ 0 ifTrue:[
-        viewOrigin := self viewOrigin.
-        self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
+	viewOrigin := self viewOrigin.
+	self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
     ]
 
     "Modified: / 20.8.1996 / 17:35:09 / stefan"
@@ -10725,8 +10726,8 @@
     |viewOrigin|
 
     nPixels ~~ 0 ifTrue:[
-        viewOrigin := self viewOrigin.
-        self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
+	viewOrigin := self viewOrigin.
+	self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
     ]
 
     "Modified: / 20-08-1996 / 17:34:36 / stefan"
@@ -10746,8 +10747,8 @@
     |viewOrigin|
 
     nPixels ~~ 0 ifTrue:[
-        viewOrigin := self viewOrigin.
-        self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
+	viewOrigin := self viewOrigin.
+	self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
     ]
 
     "Modified: / 20.8.1996 / 17:35:37 / stefan"
@@ -10779,12 +10780,12 @@
 
     currentTransformation := gc transformation.
     currentTransformation notNil ifTrue:[
-        wCont := currentTransformation applyScaleX:wCont.
-        hCont := currentTransformation applyScaleY:hCont.
+	wCont := currentTransformation applyScaleX:wCont.
+	hCont := currentTransformation applyScaleY:hCont.
     ].
     self scrollTo:
-            ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
-            ((((hCont * percent y) / 100.0) + 0.5) asInteger)
+	    ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
+	    ((((hCont * percent y) / 100.0) + 0.5) asInteger)
 
     "Created: 5.8.1996 / 12:15:53 / stefan"
     "Modified: 5.8.1996 / 12:42:57 / stefan"
@@ -10798,7 +10799,7 @@
     wCont := self widthOfContents.
     currentTransformation := gc transformation.
     currentTransformation notNil ifTrue:[
-        wCont := currentTransformation applyScaleX:wCont.
+	wCont := currentTransformation applyScaleX:wCont.
     ].
     self scrollHorizontalTo:((wCont - self innerWidth) max:0)
 !
@@ -10849,10 +10850,10 @@
     hCont := self heightOfContents.
     currentTransformation := gc transformation.
     currentTransformation notNil ifTrue:[
-        hCont := currentTransformation applyScaleY:hCont.
+	hCont := currentTransformation applyScaleY:hCont.
     ].
     self scrollVerticalTo:
-            ((((hCont * percent) / 100.0) + 0.5) asInteger)
+	    ((((hCont * percent) / 100.0) + 0.5) asInteger)
 !
 
 verticalScrollStep
@@ -10892,9 +10893,9 @@
      point."
 
     ^ self
-        scrollTo:newOrigin
-        redraw:doRedraw
-        allowScrollBeyondContents:false
+	scrollTo:newOrigin
+	redraw:doRedraw
+	allowScrollBeyondContents:false
 !
 
 scrollTo:newOrigin redraw:doRedraw allowScrollBeyondContents:allowScrollBeyondContents
@@ -10914,12 +10915,12 @@
     wCont := self widthOfContents.
     currentTransformation := gc transformation.
     currentTransformation isNil ifTrue:[
-        orgY := orgX := 0
+	orgY := orgX := 0
     ] ifFalse:[
-        wCont := (currentTransformation applyScaleX:wCont) rounded.
-        hCont := (currentTransformation applyScaleY:hCont) rounded.
-        orgY := currentTransformation translation y negated.
-        orgX := currentTransformation translation x negated
+	wCont := (currentTransformation applyScaleX:wCont) rounded.
+	hCont := (currentTransformation applyScaleY:hCont) rounded.
+	orgY := currentTransformation translation y negated.
+	orgX := currentTransformation translation x negated
     ].
 
     iw := self innerWidth.
@@ -10931,20 +10932,20 @@
     y := newOrigin y.
 
     allowScrollBeyondContents ifFalse:[
-        x + iw > wCont ifTrue:[
-            x := (wCont - iw) asInteger.
-        ].
+	x + iw > wCont ifTrue:[
+	    x := (wCont - iw) asInteger.
+	].
     ].
     x < 0 ifTrue:[
-        x := 0
+	x := 0
     ].
     allowScrollBeyondContents ifFalse:[
-        y + ih > hCont ifTrue:[
-            y := (hCont - ih) asInteger.
-        ].
+	y + ih > hCont ifTrue:[
+	    y := (hCont - ih) asInteger.
+	].
     ].
     y < 0 ifTrue:[
-        y := 0.
+	y := 0.
     ].
 
     dX := x - orgX.
@@ -10955,79 +10956,79 @@
     ].
 
     (wg := self windowGroup) notNil ifTrue:[
-        wg processRealExposeEventsFor:self.
+	wg processRealExposeEventsFor:self.
     ].
 
     self originWillChange.
     (shown and:[doRedraw]) ifTrue:[
-        copyWidth := iw - dX abs.
-        copyHeight := ih - dY abs.
-        ((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
-            "/ some of the currently displayed pixels
-            "/ remain visible. Copy them
-
-            dX < 0 ifTrue:[
-              fromX := margin.
-              toX := margin - dX.
-              redrawX := margin
-            ] ifFalse:[
-              fromX := margin + dX.
-              toX := margin.
-              redrawX := margin + copyWidth.
-            ].
-            dY < 0 ifTrue:[
-              fromY := margin.
-              toY   := margin - dY.
-              redrawY := margin.
-            ] ifFalse:[
-              fromY := margin + dY.
-              toY   := margin.
-              redrawY := margin + copyHeight.
-            ].
-            self catchExpose.
-            self setViewOrigin:(x @ y).
-            self
-                copyFrom:self
-                x:fromX y:fromY
-                toX:toX   y:toY
-                width:copyWidth
-                height:copyHeight
-                async:true.
-
-            self setInnerClip.
-
-            "first redraw the rectangle above/below the
-             copied area (with full width)."
-
-            copyHeight < ih ifTrue:[
-            self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.
+	copyWidth := iw - dX abs.
+	copyHeight := ih - dY abs.
+	((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
+	    "/ some of the currently displayed pixels
+	    "/ remain visible. Copy them
+
+	    dX < 0 ifTrue:[
+	      fromX := margin.
+	      toX := margin - dX.
+	      redrawX := margin
+	    ] ifFalse:[
+	      fromX := margin + dX.
+	      toX := margin.
+	      redrawX := margin + copyWidth.
+	    ].
+	    dY < 0 ifTrue:[
+	      fromY := margin.
+	      toY   := margin - dY.
+	      redrawY := margin.
+	    ] ifFalse:[
+	      fromY := margin + dY.
+	      toY   := margin.
+	      redrawY := margin + copyHeight.
+	    ].
+	    self catchExpose.
+	    self setViewOrigin:(x @ y).
+	    self
+		copyFrom:self
+		x:fromX y:fromY
+		toX:toX   y:toY
+		width:copyWidth
+		height:copyHeight
+		async:true.
+
+	    self setInnerClip.
+
+	    "first redraw the rectangle above/below the
+	     copied area (with full width)."
+
+	    copyHeight < ih ifTrue:[
+	    self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.
 "/                self
 "/                    redrawDeviceX:margin y:redrawY
 "/                    width:iw height:(ih - copyHeight).
-            ].
-
-            "second redraw the rectangle left/right of the
-             copied area"
-
-            copyWidth < iw ifTrue:[
-            self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.
+	    ].
+
+	    "second redraw the rectangle left/right of the
+	     copied area"
+
+	    copyWidth < iw ifTrue:[
+	    self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.
 "/                self redrawDeviceX:redrawX y:toY
 "/
 "/                             width:iw - copyWidth
 "/                            height:copyHeight.
-            ].
-            self waitForExpose.
-        ] ifFalse:[
-            "redraw everything"
-
-            self setViewOrigin:(x @ y).
-            self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.
+	    ].
+	    self waitForExpose.
+	] ifFalse:[
+	    "redraw everything"
+
+	    self setViewOrigin:(x @ y).
+	    self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.
 "/            self redrawDeviceX:margin y:margin
 "/                         width:iw
 "/                        height:ih.
-        ].
+	].
     ] ifFalse:[
-        self setViewOrigin:(x @ y).
+	self setViewOrigin:(x @ y).
     ].
 
     self originChanged:(dX negated @ dY negated).
@@ -11091,17 +11092,17 @@
 
     "does not work:
 
-        |v|
-
-        v := View new open.
-        v displayLineFrom:0@0 to:50@50
+	|v|
+
+	v := View new open.
+	v displayLineFrom:0@0 to:50@50
 
      does work:
 
-        |v|
-
-        v := View new openAndWait.
-        v displayLineFrom:0@0 to:50@50
+	|v|
+
+	v := View new openAndWait.
+	v displayLineFrom:0@0 to:50@50
     "
 !
 
@@ -11138,10 +11139,10 @@
      The view will be handled by its own process, effectively running in
      parallel.
      Notice:
-        This entry is for NON-topviews, which want to be served
-        autonomous from their real topview.
-        (see the fileBrowsers kill-button
-         when executing unix commands as an example)"
+	This entry is for NON-topviews, which want to be served
+	autonomous from their real topview.
+	(see the fileBrowsers kill-button
+	 when executing unix commands as an example)"
 
     |wg mainGroup|
 
@@ -11150,7 +11151,7 @@
 
     mainGroup := WindowGroup activeGroup.
     mainGroup notNil ifTrue:[
-        mainGroup := mainGroup mainGroup.
+	mainGroup := mainGroup mainGroup.
     ].
 
     wg isForModalSubview:true.        "/ make it handle update events for the main group
@@ -11186,14 +11187,14 @@
 
     "
      the same:
-         YesNoBox new open
-
-         YesNoBox new openModal
+	 YesNoBox new open
+
+	 YesNoBox new openModal
 
      different:
-         (Button label:'hello') open
-
-         (Button label:'hello') openModal
+	 (Button label:'hello') open
+
+	 (Button label:'hello') openModal
     "
 !
 
@@ -11241,8 +11242,8 @@
 
     isPopup := self isPopUpView.
     aWindowGroup notNil ifTrue:[
-        mainGroup := aWindowGroup mainGroup.
-        mainView := mainGroup mainView.
+	mainGroup := aWindowGroup mainGroup.
+	mainView := mainGroup mainView.
     ].
 
     "/ set the windowgroup BEFORE sending the aboutToOpen notification
@@ -11250,161 +11251,161 @@
     "/ this allows for the handler to enqueue an event,
     "/ or to add event hooks.
     Processor activeProcessIsSystemProcess ifTrue:[
-        "
-         put myself into the modal group, let it handle events for
-         me as well. This is only a half way solution, since the view
-         is not modal at all ... however, the only situation
-         where this happens is with modal boxes popped while in a
-         modal browser. You will forgive me for that inconvenience.
-        "
-        windowGroup := aWindowGroup.
-        aWindowGroup notNil ifTrue:[aWindowGroup addTopView:self].
+	"
+	 put myself into the modal group, let it handle events for
+	 me as well. This is only a half way solution, since the view
+	 is not modal at all ... however, the only situation
+	 where this happens is with modal boxes popped while in a
+	 modal browser. You will forgive me for that inconvenience.
+	"
+	windowGroup := aWindowGroup.
+	aWindowGroup notNil ifTrue:[aWindowGroup addTopView:self].
     ] ifFalse:[
-        previousGroup := WindowGroup activeGroup.
+	previousGroup := WindowGroup activeGroup.
     ].
 
     windowGroup isNil ifTrue:[
-        "/ create a new window group put myself into it
-        windowGroup := self windowGroupClass new.
-        windowGroup
-            addTopView:self;
-            setPreviousGroup:previousGroup.
-
-        superView notNil ifTrue:[
-            "/
-            "/ special: this is a modal subview,
-            "/ prevent the view from reassigning its windowGroup when realized
-            "/ (subviews normally place themself into the superviews group)
-            "/
-            windowGroup isForModalSubview:true.
-        ].
+	"/ create a new window group put myself into it
+	windowGroup := self windowGroupClass new.
+	windowGroup
+	    addTopView:self;
+	    setPreviousGroup:previousGroup.
+
+	superView notNil ifTrue:[
+	    "/
+	    "/ special: this is a modal subview,
+	    "/ prevent the view from reassigning its windowGroup when realized
+	    "/ (subviews normally place themself into the superviews group)
+	    "/
+	    windowGroup isForModalSubview:true.
+	].
     ].
 
     makeTransient := true.
     transientFor := mainView.
     isPopup ifFalse:[
-        "/ the following allows for knowledgable programmers to suppress dialog boxes,
-        "/ or to patch common controls right before opening...
-        (Dialog aboutToOpenBoxNotificationSignal raiseRequestWith:self) == #abort ifTrue:[
-            ^ self
-        ].
-        windowGroup isNil ifTrue:[
-            "/ the aboutToOpenBoxNotificationSignal handler destroyed me (although it should proceed with #abort)!!
-            "/ Transcript showCR:(self class name,': box opening suppressed by aboutToOpenBoxNotificationSignal handler').
-            ^ self.
-        ].
-
-        "/ the following allows for hooks to add a bell sound or other whenever a dialog opens
-        device modalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
-
-        "/ the following raises the corresponding mainview, so the dialog shows above
-        "/ any currently covered view. However, be careful if being debugged, or if this dialog
-        "/ is opened by an already open dialog.
-        (mainView isNil or:[mainView windowGroup isInModalLoop]) ifTrue:[
-            (previousGroup notNil and:[previousGroup isModal]) ifTrue:[
-                transientFor := previousGroup mainView.
-            ].
-        ].
-
-        transientFor notNil ifTrue:[
-            (transientFor windowGroup isInModalLoop
-                or:[ transientFor windowGroup isDebugged
-                or:[ WindowGroup activeGroup isDebugged
-            ]]) ifFalse:[
-                self tracePoint:#cg message:'activate'.
-                self debuggingCodeFor:#cg is:[ Transcript showCR:transientFor; showCR:transientFor windowGroup. ].
-                transientFor activate; setForegroundWindow.
+	"/ the following allows for knowledgable programmers to suppress dialog boxes,
+	"/ or to patch common controls right before opening...
+	(Dialog aboutToOpenBoxNotificationSignal raiseRequestWith:self) == #abort ifTrue:[
+	    ^ self
+	].
+	windowGroup isNil ifTrue:[
+	    "/ the aboutToOpenBoxNotificationSignal handler destroyed me (although it should proceed with #abort)!!
+	    "/ Transcript showCR:(self class name,': box opening suppressed by aboutToOpenBoxNotificationSignal handler').
+	    ^ self.
+	].
+
+	"/ the following allows for hooks to add a bell sound or other whenever a dialog opens
+	device modalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
+
+	"/ the following raises the corresponding mainview, so the dialog shows above
+	"/ any currently covered view. However, be careful if being debugged, or if this dialog
+	"/ is opened by an already open dialog.
+	(mainView isNil or:[mainView windowGroup isInModalLoop]) ifTrue:[
+	    (previousGroup notNil and:[previousGroup isModal]) ifTrue:[
+		transientFor := previousGroup mainView.
+	    ].
+	].
+
+	transientFor notNil ifTrue:[
+	    (transientFor windowGroup isInModalLoop
+		or:[ transientFor windowGroup isDebugged
+		or:[ WindowGroup activeGroup isDebugged
+	    ]]) ifFalse:[
+		self tracePoint:#cg message:'activate'.
+		self debuggingCodeFor:#cg is:[ Transcript showCR:transientFor; showCR:transientFor windowGroup. ].
+		transientFor activate; setForegroundWindow.
 "/            ] ifTrue:[
 "/                makeTransient := false.
-            ]
-        ].
+	    ]
+	].
     ].
     "/ makeTransient ifTrue:[
-        transientFor notNil ifTrue:[
-            "set the transient property.
-             This is currently used for X, to tell the Window Manager
-             That this view should be always on top of the mainView"
-            self drawableId isNil ifTrue:[self create].
-            device setTransient:self drawableId for:transientFor id.
-        ].
+	transientFor notNil ifTrue:[
+	    "set the transient property.
+	     This is currently used for X, to tell the Window Manager
+	     That this view should be always on top of the mainView"
+	    self drawableId isNil ifTrue:[self create].
+	    device setTransient:self drawableId for:transientFor id.
+	].
     "/ ].
 
     self raise.
 
     Processor activeProcessIsSystemProcess ifTrue:[
-        self realize
+	self realize
     ] ifFalse:[
-        "
-         show a stop-cursor in the suspended window groups
-        "
-        (mainGroup notNil and:[isPopup not]) ifTrue:[
-            mainGroup showCursor:(Cursor stop).
-            previousGroup ~~ mainGroup ifTrue:[
-                previousGroup showCursor:(Cursor stop).
-            ].
-            cursorChanged := true.
-        ].
-
-        "
-         go dispatch events in this new group
-         (thus current windowgroup is blocked from interaction)
-        "
-        AbortOperationRequest handle:[:ex |
-            "/ the dialog/popup is aborted - hide it. Care for another abort during the hide.
-            AbortOperationRequest handle:[:ex2 |
-                "/ an aborted hide (possibly due to a cancelled user confirmation or similar)
-                self breakPoint:#cg.
-                ex exit.
-            ] do:[
-                self hide.
-                realized ifTrue:[
-                    "/ self halt. "/ hide handled and closeRequest not wanted:
-                    ex exit.
-                ].
-            ].
-        ] do:[
-            [
-                [
-                    windowGroup startupModal:[realized and:aBlock] forGroup:aWindowGroup
-                ] ifCurtailed:[
-                    self hide.
-                ]
-            ] ensure:[
-                aWindowGroup notNil ifTrue:[
-                    aWindowGroup graphicsDevice sync.  "that's a round trip - make sure that all drawing has been processed"
-                    "/ ensure that eventListener runs here ...
-                    Delay waitForMilliseconds:50.
-                    aWindowGroup processExposeEvents.
-
-                    (self isPopUpView or:[ReturnFocusWhenClosingModalBoxes]) ifTrue:[
-                        "
-                         return the input focus to the previously active group's top.
-                         This helps with window managers which need an explicit click
-                         on the view for the focus.
-                         Only do this, if the previous group is still having the focus.
-                         (i.e. no other view was opened in the meantime)
-                        "
-                        aWindowGroup graphicsDevice focusView isNil ifTrue:[
-                            tops := aWindowGroup topViews.
-                            (tops notEmptyOrNil) ifTrue:[
-                                tops first getKeyboardFocus
-                            ].
-                        ].
-                    ].
-
-                    "
-                     restore cursors in the changed groups
-                    "
-                    cursorChanged notNil ifTrue:[
-                        mainGroup restoreCursors.
-                        previousGroup ~~ mainGroup ifTrue:[
-                            previousGroup restoreCursors.
-                        ].
-                    ].
-                ].
-                Dialog boxClosedNotificationSignal raiseRequestWith:self.
-            ]
-        ].
+	"
+	 show a stop-cursor in the suspended window groups
+	"
+	(mainGroup notNil and:[isPopup not]) ifTrue:[
+	    mainGroup showCursor:(Cursor stop).
+	    previousGroup ~~ mainGroup ifTrue:[
+		previousGroup showCursor:(Cursor stop).
+	    ].
+	    cursorChanged := true.
+	].
+
+	"
+	 go dispatch events in this new group
+	 (thus current windowgroup is blocked from interaction)
+	"
+	AbortOperationRequest handle:[:ex |
+	    "/ the dialog/popup is aborted - hide it. Care for another abort during the hide.
+	    AbortOperationRequest handle:[:ex2 |
+		"/ an aborted hide (possibly due to a cancelled user confirmation or similar)
+		self breakPoint:#cg.
+		ex exit.
+	    ] do:[
+		self hide.
+		realized ifTrue:[
+		    "/ self halt. "/ hide handled and closeRequest not wanted:
+		    ex exit.
+		].
+	    ].
+	] do:[
+	    [
+		[
+		    windowGroup startupModal:[realized and:aBlock] forGroup:aWindowGroup
+		] ifCurtailed:[
+		    self hide.
+		]
+	    ] ensure:[
+		aWindowGroup notNil ifTrue:[
+		    aWindowGroup graphicsDevice sync.  "that's a round trip - make sure that all drawing has been processed"
+		    "/ ensure that eventListener runs here ...
+		    Delay waitForMilliseconds:50.
+		    aWindowGroup processExposeEvents.
+
+		    (self isPopUpView or:[ReturnFocusWhenClosingModalBoxes]) ifTrue:[
+			"
+			 return the input focus to the previously active group's top.
+			 This helps with window managers which need an explicit click
+			 on the view for the focus.
+			 Only do this, if the previous group is still having the focus.
+			 (i.e. no other view was opened in the meantime)
+			"
+			aWindowGroup graphicsDevice focusView isNil ifTrue:[
+			    tops := aWindowGroup topViews.
+			    (tops notEmptyOrNil) ifTrue:[
+				tops first getKeyboardFocus
+			    ].
+			].
+		    ].
+
+		    "
+		     restore cursors in the changed groups
+		    "
+		    cursorChanged notNil ifTrue:[
+			mainGroup restoreCursors.
+			previousGroup ~~ mainGroup ifTrue:[
+			    previousGroup restoreCursors.
+			].
+		    ].
+		].
+		Dialog boxClosedNotificationSignal raiseRequestWith:self.
+	    ]
+	].
     ]
 
     "Created: / 10-12-1995 / 14:06:14 / cg"
@@ -11465,25 +11466,25 @@
 
     "
      the same:
-         (Button label:'hello') open
-
-         (Button label:'hello') openModeless
+	 (Button label:'hello') open
+
+	 (Button label:'hello') openModeless
 
      different:
-         YesNoBox new open
-
-         YesNoBox new openModeless
+	 YesNoBox new open
+
+	 YesNoBox new openModeless
     "
     "
      (almost) the same:
-         YesNoBox new open
-
-         YesNoBox new openModal
+	 YesNoBox new open
+
+	 YesNoBox new openModal
 
      different:
-         (Button label:'hello') open
-
-         (Button label:'hello') openModal
+	 (Button label:'hello') open
+
+	 (Button label:'hello') openModal
     "
 
     "Modified: 24.7.1997 / 13:17:49 / cg"
@@ -11519,10 +11520,10 @@
     self drawableId isNil ifTrue:[self create].
 
     windowGroup isNil ifTrue:[
-        newGroup := true.
-        windowGroup := self windowGroupClass new.
+	newGroup := true.
+	windowGroup := self windowGroupClass new.
     ] ifFalse:[
-        newGroup := false.
+	newGroup := false.
     ].
 
     windowGroup addTopView:self.
@@ -11531,13 +11532,13 @@
     device nonModalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
 
     newGroup ifTrue:[
-        (aPoint isNil and:[iconified not]) ifTrue:[
-            windowGroup startupWith:[self realize].
-        ] ifFalse:[
-            windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
-        ].
+	(aPoint isNil and:[iconified not]) ifTrue:[
+	    windowGroup startupWith:[self realize].
+	] ifFalse:[
+	    windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
+	].
     ] ifFalse:[
-        self realizeInGroup.
+	self realizeInGroup.
     ].
 
     "
@@ -11590,45 +11591,45 @@
      another view (which is only available once visible),
      use this to suspend the current process until the receiver is shown.
      Caveat:
-        we poll here for the view to be shown - we need a semaphore
-        which is raised by the view in order to do it right."
+	we poll here for the view to be shown - we need a semaphore
+	which is raised by the view in order to do it right."
 
     |wg n|
 
     n := 0.
     [self shown] whileFalse:[
-        (device notNil and:[device isOpen not]) ifTrue:[^ self].
-
-        "/ this was added to avoid a deadlock, when called from within
-        "/ the event dispatch process (as when doing foo inspect there).
-        n > (10 / 0.05) ifTrue:[
-            'SimpleView [info]: View not visible after 10 seconds - will not wait any longer in waitUntilVisible' infoPrintCR.
-            ^ self
-        ].
-        n := n + 1.
-        Delay waitForMilliseconds:50.
-        (wg := self windowGroup) notNil ifTrue:[
-            wg processExposeEvents.
-        ].
+	(device notNil and:[device isOpen not]) ifTrue:[^ self].
+
+	"/ this was added to avoid a deadlock, when called from within
+	"/ the event dispatch process (as when doing foo inspect there).
+	n > (10 / 0.05) ifTrue:[
+	    'SimpleView [info]: View not visible after 10 seconds - will not wait any longer in waitUntilVisible' infoPrintCR.
+	    ^ self
+	].
+	n := n + 1.
+	Delay waitForMilliseconds:50.
+	(wg := self windowGroup) notNil ifTrue:[
+	    wg processExposeEvents.
+	].
     ].
 
     "does not work (the view is in its opening phase,
      when we attempt to draw a line - this gives an error, since
      its internals are not yet correctly setup):
 
-        |v|
-
-        v := View new open.
-        v displayLineFrom:0@0 to:50@50
+	|v|
+
+	v := View new open.
+	v displayLineFrom:0@0 to:50@50
 
      does work (since we wait until the view has completely finished
      its startup phase):
 
-        |v|
-
-        v := View new open.
-        v waitUntilVisible.
-        v displayLineFrom:0@0 to:50@50
+	|v|
+
+	v := View new open.
+	v waitUntilVisible.
+	v displayLineFrom:0@0 to:50@50
     "
 
     "Modified: / 08-08-2010 / 14:46:34 / cg"
@@ -11696,71 +11697,71 @@
     be customized by additional widgets.
 
     i.e. its typical use is like:
-        |doNotShowHolder|
-
-        doNotShowHolder := false asValue.
-        Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
-            |box|
-
-            box := ex box.
-            box verticalPanel
-                add:(CheckBox label:('Do not show this information in the future.')
-                              model:doNotShowHolder).
-        ] do:[
-            Dialog information:'This is a standard information box.\(but has an additional check toggle in it)' withCRs.
-        ].
+	|doNotShowHolder|
+
+	doNotShowHolder := false asValue.
+	Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+	    |box|
+
+	    box := ex box.
+	    box verticalPanel
+		add:(CheckBox label:('Do not show this information in the future.')
+			      model:doNotShowHolder).
+	] do:[
+	    Dialog information:'This is a standard information box.\(but has an additional check toggle in it)' withCRs.
+	].
 
     Another application is to suppress dialogs, by returning #abort from the query
     (of course, in real life, the Dialog call is deeply nested below the handler and done elsewhere):
 
-        Dialog aboutToOpenBoxNotificationSignal
-            answer:#abort
-            do:[
-                Dialog information:'This box is not shown.'
-            ].
+	Dialog aboutToOpenBoxNotificationSignal
+	    answer:#abort
+	    do:[
+		Dialog information:'This box is not shown.'
+	    ].
 
     or to automatically answer all dialogs by simulating user entering a return:
 
-        Dialog aboutToOpenBoxNotificationSignal
-            handle:[:ex |
-                ex box windowGroup sensor
-                    pushEvent:
-                        (WindowEvent
-                                keyPress:#Return
-                                rawKey:#Return
-                                hasShift:false ctrl:false alt:false meta:false
-                                button1:false button2:false button3:false
-                                x:1 y:1 view:ex box).
-            ] do:[
-                Transcript showCR:(Dialog confirm:'Please confirm.')
-            ].
+	Dialog aboutToOpenBoxNotificationSignal
+	    handle:[:ex |
+		ex box windowGroup sensor
+		    pushEvent:
+			(WindowEvent
+				keyPress:#Return
+				rawKey:#Return
+				hasShift:false ctrl:false alt:false meta:false
+				button1:false button2:false button3:false
+				x:1 y:1 view:ex box).
+	    ] do:[
+		Transcript showCR:(Dialog confirm:'Please confirm.')
+	    ].
 
     or an escape:
 
-        Dialog aboutToOpenBoxNotificationSignal
-            handle:[:ex |
-                ex box windowGroup sensor
-                    pushEvent:
-                        (WindowEvent
-                                keyPress:#Escape
-                                rawKey:#Escape
-                                hasShift:false ctrl:false alt:false meta:false
-                                button1:false button2:false button3:false
-                                x:1 y:1 view:ex box).
-            ] do:[
-                Transcript showCR:(Dialog confirm:'Please confirm.')
-            ].
+	Dialog aboutToOpenBoxNotificationSignal
+	    handle:[:ex |
+		ex box windowGroup sensor
+		    pushEvent:
+			(WindowEvent
+				keyPress:#Escape
+				rawKey:#Escape
+				hasShift:false ctrl:false alt:false meta:false
+				button1:false button2:false button3:false
+				x:1 y:1 view:ex box).
+	    ] do:[
+		Transcript showCR:(Dialog confirm:'Please confirm.')
+	    ].
 
     Finally, a recorder may want to keep track of which dialogs have been opened:
     (of course, again, the Dialog calls are deeply nested below the handler and done elsewhere):
 
-        Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
-            Transcript showCR:ex box topView label
-        ] do:[
-            Dialog information:'box #1.'.
-            Dialog information:'box #2.'.
-            Dialog confirm:'bla'.
-        ].
+	Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+	    Transcript showCR:ex box topView label
+	] do:[
+	    Dialog information:'box #1.'.
+	    Dialog information:'box #2.'.
+	    Dialog confirm:'bla'.
+	].
 
 "
 ! !
@@ -11798,25 +11799,25 @@
     be wrapped by other programs.
 
     i.e. its typical use is like:
-        Dialog boxClosedNotificationSignal handle:[:ex |
-            Transcript showCR:'box closed'
-        ] do:[
-            Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
-                Transcript showCR:'box about to open'
-            ] do:[
-                Dialog information:'This is a standard information box.'.
-            ].
-        ].
-
-        Dialog boxClosedNotificationSignal handle:[:ex |
-            Transcript showCR:'box closed'
-        ] do:[
-            Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
-                Transcript showCR:'box about to open'
-            ] do:[
-                Dialog confirm:'Yes or No.'.
-            ].
-        ].
+	Dialog boxClosedNotificationSignal handle:[:ex |
+	    Transcript showCR:'box closed'
+	] do:[
+	    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+		Transcript showCR:'box about to open'
+	    ] do:[
+		Dialog information:'This is a standard information box.'.
+	    ].
+	].
+
+	Dialog boxClosedNotificationSignal handle:[:ex |
+	    Transcript showCR:'box closed'
+	] do:[
+	    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+		Transcript showCR:'box about to open'
+	    ] do:[
+		Dialog confirm:'Yes or No.'.
+	    ].
+	].
 "
 ! !