<body><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        There seem to be some issues with these changes:<div><br></div><div><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">...  self world ifNil: [self world] ...</span></div><div><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">... </span><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">PluggableButtonMorph class>>roundedButtonCorners: ... </span><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">self world ...</span></div><div><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px"><br></span></div><div><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">Best,</span></div><div><span style="font-family: tahoma, verdana;font-size: 13px;line-height: 19.5px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.11.2017 04:38:04 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>David T. Lewis uploaded a new version of Morphic to project The Trunk:<br>http://source.squeak.org/trunk/Morphic-dtl.1363.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-dtl.1363<br>Author: dtl<br>Time: 14 November 2017, 10:37:09.320992 pm<br>UUID: 7f7d0c07-f3aa-4caf-b01a-84dd44f4d893<br>Ancestors: Morphic-dtl.1362<br><br>Remove unnecessary references to global World.<br><br>=============== Diff against Morphic-dtl.1362 ===============<br><br>Item was changed:<br>  ----- Method: Morph>>delete (in category 'submorphs-add/remove') -----<br>  delete<br>      "Remove the receiver as a submorph of its owner and make its <br>    new owner be nil."<br>  <br>   | aWorld |<br>    self removeHalo.<br>  <br>          self isInWorld ifTrue: [<br>              self disableSubmorphFocusForHand: self activeHand.<br>            self activeHand<br>                       releaseKeyboardFocus: self;<br>                   releaseMouseFocus: self].<br>  <br>         "Preserve world reference for player notificaiton. See below."<br>+     aWorld := self world ifNil: [self world].<br>-    aWorld := self world ifNil: [World].<br>          <br>      owner ifNotNil:[<br>              self privateDelete.<br>           self player ifNotNil: [:player |<br>                      player noteDeletionOf: self fromWorld: aWorld]].!<br><br>Item was changed:<br>  ----- Method: Morph>>openNear: (in category 'initialization') -----<br>  openNear: aRectangle <br>          self<br>                  openNear: aRectangle<br>+                 in: self world!<br>-              in: World!<br><br>Item was changed:<br>  ----- Method: Morph>>openNearMorph: (in category 'initialization') -----<br>  openNearMorph: aMorph <br>   self<br>                  openNear: aMorph boundsInWorld<br>+               in: (aMorph world ifNil: [ self world ])!<br>-            in: (aMorph world ifNil: [ World ])!<br><br>Item was changed:<br>  ----- Method: Morph>>outermostWorldMorph (in category 'structure') -----<br>  outermostWorldMorph<br>  <br>        | outer |<br>+    self world ifNotNil: [ :world |^world].<br>-      World ifNotNil:[^World].<br>      self flag: #arNote. "stuff below is really only for MVC"<br>    outer := self outermostMorphThat: [ :x | x isWorldMorph].<br>     outer ifNotNil: [^outer].<br>     self isWorldMorph ifTrue: [^self].<br>    ^nil!<br><br>Item was changed:<br>  ----- Method: Morph>>preferredKeyboardBounds (in category 'event handling') -----<br>  preferredKeyboardBounds<br>  <br>+         ^ self bounds: self bounds in: self world.<br>-   ^ self bounds: self bounds in: World.<br>  !<br><br>Item was changed:<br>  ----- Method: Morph>>preferredKeyboardPosition (in category 'event handling') -----<br>  preferredKeyboardPosition<br>  <br>+        ^ (self bounds: self bounds in: self world) topLeft.<br>-         ^ (self bounds: self bounds in: World) topLeft.<br>  !<br><br>Item was changed:<br>  ----- Method: PluggableButtonMorph class>>roundedButtonCorners: (in category 'preferences') -----<br>  roundedButtonCorners: aBoolean<br>  <br>    RoundedButtonCorners := aBoolean.<br>+    World invalidRect: self world bounds from: self world.!<br>-      World invalidRect: World bounds from: World.!<br><br>Item was changed:<br>  ----- Method: PluggableListMorph>>canBeEncroached (in category 'testing') -----<br>  canBeEncroached<br>        "Answer whether my bottom edge can be encroached by horizontal smart-splitter.  If my list is larger than my outermost containing window, go ahead and report true since moving a splitter will never allow my entire list to be displayed.  In that case go ahead and be encroachable to allow lower truncated text-panes to be exposed, but leave a reasonable height (70) to ensure at least few items are displayed."<br>   ^ self height > 24 and:<br>            [ | outermostContainer |<br>              outermostContainer := self outermostMorphThat:<br>+                       [ : e | e owner = self world ].<br>-                      [ : e | e owner = World ].<br>            listMorph height + 8 < self="" height=""><br>                   [ outermostContainer notNil and: [ listMorph height > (outermostContainer height / 1.2) and: [ self height > 70 ] ] ] ]!<br><br>Item was changed:<br>  ----- Method: SearchBar>>layoutScratchPad (in category 'private') -----<br>  layoutScratchPad<br>+     | world pos width |<br>+  world := Project current world.<br>+      world mainDockingBars do:<br>-    | pos width |<br>-        World mainDockingBars do:<br>             [ : each | each searchBarMorph ifNotNil:<br>                      [ : searchBar | pos := searchBar bottomLeft.<br>                          width := searchBar width ] ].<br>+        width ifNil: [ width := 250.  pos := world topRight - (width @ 5) ].<br>-         width ifNil: [ width := 250.  pos := World topRight - (width @ 5) ].<br>          scratchPad<br>            width: width ;<br>                position: pos ;<br>               startStepping: #deleteUnlessHasFocus at: Time millisecondClockValue arguments: nil stepTime: 3000!<br><br>Item was changed:<br>  ----- Method: SimpleHierarchicalListMorph class>>submorphsExample (in category 'examples') -----<br>  submorphsExample<br>+        "display a hierarchical list of the current world plus its submorphs plus its submorphs' submorphs etc."<br>+   "SimpleHierarchicalListMorph submorphsExample"<br>-     "display a hierarchical list of the World plus its submorphs plus its submorphs' submorphs etc."<br>-   "[SimpleHierarchicalListMorph submorphsExample]"<br>    | morph |<br>     morph :=<br>              SimpleHierarchicalListMorph<br>+                  on: [ Array with:  (MorphWithSubmorphsWrapper with: Project current world)  ]<br>-                        on: [ Array with:  (MorphWithSubmorphsWrapper with: World)  ]<br>                         list: #value<br>                          selected: nil<br>                         changeSelected: nil<br>                   menu: nil<br>                     keystroke: nil.<br>  <br>   morph openInWindow!<br><br>Item was changed:<br>  ----- Method: SystemWindow class>>bringWindowUnderHandToFront (in category 'top window') -----<br>  bringWindowUnderHandToFront<br>  "This only works when All Windows Active is enabled."<br>+   (self windowsIn: Project current world) do: [ : each | each isLookingFocused ifTrue: [ ^ each beKeyWindow ]]!<br>-        (self windowsIn: World) do: [ : each | each isLookingFocused ifTrue: [ ^ each beKeyWindow ]]!<br><br>Item was changed:<br>  ----- Method: SystemWindow>>anyOpenWindowLikeMe (in category 'open/close') -----<br>  anyOpenWindowLikeMe<br>   <br>      self class reuseWindows ifFalse: [ ^Array empty ].<br>    ^ SystemWindow<br>+               windowsIn: self world <br>-               windowsIn: World <br>             satisfying: <br>                          [ : each |<br>                    each model class = self model class<br>                           and: [ (each model respondsTo: #representsSameBrowseeAs:) <br>                            and: [ each model representsSameBrowseeAs: self model ] ] ]<br>  !<br><br>Item was changed:<br>  ----- Method: TextMorph>>preferredKeyboardPosition (in category 'editing') -----<br>  preferredKeyboardPosition<br>          | default rects |<br>+    default := (self bounds: self bounds in: self world) topLeft.<br>-        default := (self bounds: self bounds in: World) topLeft.<br>      paragraph<br>             ifNil: [^ default].<br>   rects := paragraph selectionRects.<br>    rects size = 0<br>                ifTrue: [^ default].<br>          ^ rects first bottomLeft!<br><br>Item was changed:<br>  ----- Method: TheWorldMainDockingBar>>allVisibleWindows (in category 'submenu - windows') -----<br>  allVisibleWindows<br>+         ^SystemWindow windowsIn: Project current world satisfying: [ :w | w visible ]!<br>-       ^SystemWindow windowsIn: World satisfying: [ :w | w visible ]!<br><br>Item was changed:<br>  ----- Method: TheWorldMainDockingBar>>loadProject (in category 'menu actions') -----<br>  loadProject<br>  <br>+         Project current world worldMenu loadProject!<br>-         World worldMenu loadProject!<br><br>Item was changed:<br>  ----- Method: TheWorldMainDockingBar>>previousProjectMenuItemOn: (in category 'submenu - projects') -----<br>  previousProjectMenuItemOn: menu<br>  <br>   menu addItem: [ :item |<br>               item<br>                          contents: 'Previous Project' translated;<br>                      help: 'Return to the most-recently-visited project' translated;<br>+                      target: Project current world;<br>-                       target: World;<br>                        selector: #goBack ]!<br><br>Item was changed:<br>  ----- Method: TheWorldMainDockingBar>>quitSqueak (in category 'menu actions') -----<br>  quitSqueak<br>  <br>      ^Smalltalk<br>            snapshot: (<br>                   UserDialogBoxMorph <br>                           confirm: 'Save changes before quitting?' translated <br>                                  orCancel: [ ^self ]<br>+                          at: Project current world center)<br>-                            at: World center)<br>             andQuit: true<br>  <br>     !<br><br>Item was changed:<br>  ----- Method: TheWorldMainDockingBar>>saveProjectMenuItemOn: (in category 'submenu - projects') -----<br>  saveProjectMenuItemOn: menu<br>  <br>      menu addItem: [ :item |<br>               item<br>                          contents: 'Save Project' translated;<br>                          help: 'Save this project on a file' translated;<br>+                      target: Project current world;<br>-                       target: World;<br>                        selector: #saveOnFile ]!<br><br>Item was changed:<br>  ----- Method: TheWorldMenu>>quitSession (in category 'commands') -----<br>  quitSession<br>  <br>      Smalltalk<br>             snapshot: (UserDialogBoxMorph <br>                        confirm: 'Save changes before quitting?' translated <br>                          orCancel: [^ self]<br>+                   at: Project current world center)<br>-                    at: World center)<br>             andQuit: true!<br><br>Item was changed:<br>  ----- Method: ThumbnailImageMorph>>mouseDown: (in category 'event handling') -----<br>  mouseDown: evt<br>     <br>      <br>      imagePopupMorph center: (self localPointToGlobal: evt position).<br>+     imagePopupMorph bounds: (imagePopupMorph bounds translatedAndSquishedToBeWithin: self world bounds).<br>-         imagePopupMorph bounds: (imagePopupMorph bounds translatedAndSquishedToBeWithin: World bounds).<br>       imagePopupMorph openInWorld<br>  !<br><br><br>
                        </blockquote>
                                        </div></body>