<body><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        Hi Hannes,<div><br></div><div>it is likely that you have to clean-up some event maps in your image (resp. via Monticello post-load scripts for all other images).</div><div><br></div><div>Take a look at Object >> #actionMap. And in this case "PasteUpMorph allInstances collect: [:ea | ea actionMap]". In my image, it is the current world that has one action for "aboutToLeaveWorld" to #removeModalWindow.</div><div><br></div><div>It's not in the code, it's in the image state.</div><div><br></div><div>Best,</div><div>Marcel</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 09.10.2017 15:55:36 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p>I need to do investigations how the Squeak 6 based etoys 2016 image by<br>Tim Felgentreff does this.<br><br>http://wiki.squeak.org/squeak/6531<br><br>...<br><br>On 10/9/17, H. Hirzel <hannes.hirzel@gmail.com> wrote:<br>> On 10/9/17, Bob Arning <arning315@comcast.net> wrote:<br>>><br>>><br>>> On 10/9/17 9:13 AM, H. Hirzel wrote:<br>>>> Looking a bit further it seems that modal window probably are not the<br>>>> issue here<br>>>><br>>>> MorphicProject(Project)<br>>>> enter: returningFlag revert: revertFlag saveForRevert: saveForRevert<br>>>><br>>>> ....<br>>>>         CurrentProject world triggerEvent: #aboutToLeaveWorld.<br>>>> ....<br>>>><br>>>><br>>>> PasteUpMorph<br>>>> triggerEvent: anEventSelector<br>>>>      "Evaluate all actions registered for <aneventselector>. Return the<br>>>> value of the last registered action."<br>>>><br>>>>      ^(self actionForEvent: anEventSelector) value<br>>>><br>>>><br>>>> anEventSelector is #aboutToLeaveWorld<br>>>> and this is not implemented in PasteUpMorph.<br>>>><br>>>> We have an empty block and that causes #removeModalWindow in a way I<br>>>> do not understand yet.<br>>>><br>>>> But if we would have<br>>>><br>>>>      #aboutToLeaveWorld<br>>>><br>>>> Then it we probably would not have this problem.<br>>>><br>>>> I wonder  #aboutToLeaveWorld  where this comes form, Squeak 3.9 and<br>>>> Squeak 5.0 do not have it either.<br>>><br>>> It's not a method, it's an event selector:<br>>><br>>>      CurrentProject world triggerEvent: #aboutToLeaveWorld.<br>>><br>>> WebCamMorph>>intoWorld: aWorld<br>>><br>>><br>>>      super intoWorld: aWorld.<br>>>      camIsOn ifTrue: [self on]<br>>>                      ifFalse:[self off].<br>>>      self removeActionsForEvent: #aboutToEnterWorld.<br>>>      aWorld<br>>>          when: #aboutToLeaveWorld<br>>>          send: #outOfWorld:<br>>>          to: self<br>>>          with: aWorld.<br>>><br>>> similar stuff removed in the intervening years<br>>><br>>> B3DSceneMorph>>intoWorld: aWorld<br>>><br>>>      "The receiver is showing in the given world"<br>>>      aWorld ifNil:[^self].<br>>>      super intoWorld: aWorld.<br>>>      aWorld when: #aboutToLeaveWorld send: #suspendAcceleration to: self.<br>>>      aWorld when: #aboutToEnterWorld send: #restoreAcceleration to: self.<br>>>      self restoreAcceleration.<br>>><br>>> also for WonderlandCameraMorph<br>>>><br>>>> --Hannes<br>><br>><br>> Thank you for pointing this out, Bob.<br>><br>> In Squeak 6.0a WebCamMorph is the only morph sending<br>><br>>      #when:send:to:with:<br>><br>><br>> And there are only a few senders of<br>><br>>      #triggerEvent:<br>><br>> (see screen shot)<br>><br>> So how would you, Bob,  suggest to proceed?<br>><br>><br>> --Hannes<br>><br>><br>><br>>>><br>>>> On 10/9/17, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:<br>>>>> Hi Hannes,<br>>>>><br>>>>> if you can manage to set-up the modal child (window), that removal<br>>>>> should<br>>>>> happen automatically. Use SystemWindow >> #modalLockTo:. Also see Morph<br>>>>> >><br>>>>> #openModal:. For "control-flow-modality", instead, you should use a<br>>>>> DialogWindow. See DialogWindow >> #getUserResponse.<br>>>>><br>>>>> Best,<br>>>>> Marcel<br>>>>> Am 09.10.2017 11:53:04 schrieb H. Hirzel <hannes.hirzel@gmail.com>:<br>>>>> Hello<br>>>>><br>>>>> I start a separate thread for the issue brought up in the tread<br>>>>><br>>>>> MorphicProject subclass: #EtoysProject<br>>>>><br>>>>><br>>>>> To see it in action make sure<br>>>>><br>>>>> EToys-hjh.308.mcz<br>>>>><br>>>>> is loaded. It contains a fix for the menuTitleBorderColor which makes<br>>>>> the following Etoys project load smoothly.<br>>>>><br>>>>> Then drop the Etoys project file<br>>>>><br>>>>> http://squeakland.org/content/articles/attach/FollowRoad.012.pr<br>>>>><br>>>>> onto the desktop.<br>>>>><br>>>>><br>>>>><br>>>>> When I choose 'World menu' -> 'Previous project', the following happens<br>>>>><br>>>>><br>>>>><br>>>>><br>>>>> ----------------------------------<br>>>>> Project class<br>>>>> ----------------------------------<br>>>>><br>>>>> returnToPreviousProject<br>>>>> "Return to the project from which this project was entered. Do<br>>>>> nothing if the current project has no link to its previous project."<br>>>>><br>>>>> | prevProj |<br>>>>> prevProj := CurrentProject previousProject.<br>>>>> prevProj ifNotNil: [prevProj enter: true revert: false<br>>>>> saveForRevert: false].<br>>>>><br>>>>><br>>>>><br>>>>> ---------------------<br>>>>> MorphicProject(Project)<br>>>>><br>>>>> enter: returningFlag revert: revertFlag saveForRevert: saveForRevert<br>>>>> "Install my ChangeSet, Transcript, and scheduled views as current<br>>>>> globals. If returningFlag is true, we will return to the project from<br>>>>> whence the current project was entered; don't change its<br>>>>> previousProject link in this case.<br>>>>> If saveForRevert is true, save the ImageSegment of the project<br>>>>> being left.<br>>>>> If revertFlag is true, make stubs for the world of the project<br>>>>> being left.<br>>>>> If revertWithoutAsking is true in the project being left, then<br>>>>> always revert."<br>>>>><br>>>>> ......<br>>>>> CurrentProject world triggerEvent: #aboutToLeaveWorld.<br>>>>> .....<br>>>>><br>>>>><br>>>>> ----------------<br>>>>><br>>>>> PasteUpMorph<br>>>>> --------------------<br>>>>><br>>>>> triggerEvent: anEventSelector<br>>>>> "Evaluate all actions registered for . Return the<br>>>>> value of the last registered action."<br>>>>><br>>>>> ^(self actionForEvent: anEventSelector) value<br>>>>><br>>>>><br>>>>> ------------------------<br>>>>> PasteUpMorph<br>>>>> ------------------------<br>>>>><br>>>>><br>>>>> removeModalWindow<br>>>>> self deprecated: 'The global becomeModal is no longer supported, use<br>>>>> e.g. a dialog window'.<br>>>>> "self modalWindow: nil"<br>>>>><br>>>>><br>>>>><br>>>>> As mentioned in the thread<br>>>>> MorphicProject subclass: #EtoysProject<br>>>>> the issue may be "resolved" by just commenting out the deprecation<br>>>>> message.<br>>>>><br>>>>><br>>>>><br>>>>> removeModalWindow<br>>>>><br>>>>> "self deprecated: 'The global becomeModal is no longer supported, use<br>>>>> e.g. a dialog window'. "<br>>>>><br>>>>> self flag: #fixMe.<br>>>>><br>>>>> "self modalWindow: nil"<br>>>>><br>>>>><br>>>>><br>>>>> Should we do this for the moment until is is more clear how the<br>>>>> navigation mechanism in Etoys works?<br>>>>><br>>>>> Other suggestions?<br>>>>><br>>>>><br>>>>> Kind regards<br>>>>><br>>>>> Hannes Hirzel<br>>>>><br>>>>><br>>>>><br>>>>><br>>><br>>><br>><br><br></hannes.hirzel@gmail.com></marcel.taeumel@hpi.de></aneventselector></arning315@comcast.net></hannes.hirzel@gmail.com>
                        </blockquote>
                                        </div></body>