<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><font face="Georgia">My iconoclastic view is to simply tone down
        the deprecation. If one cannot add a modal window, then
        attempting to remove one could be a silent no-op.</font><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 10/9/17 9:53 AM, H. Hirzel wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGQxfVgfYER3FbPn5d-ouJU9KjZg4HZYAKzFWVtmtHAhY1ptgg@mail.gmail.com">
      <pre wrap="">On 10/9/17, Bob Arning <a class="moz-txt-link-rfc2396E" href="mailto:arning315@comcast.net"><arning315@comcast.net></a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">

On 10/9/17 9:13 AM, H. Hirzel wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">Looking a bit further it seems that modal window probably are not the
issue here

MorphicProject(Project)
enter: returningFlag revert: revertFlag saveForRevert: saveForRevert

....
        CurrentProject world triggerEvent: #aboutToLeaveWorld.
....


PasteUpMorph
triggerEvent: anEventSelector
        "Evaluate all actions registered for <anEventSelector>. Return the
value of the last registered action."

     ^(self actionForEvent: anEventSelector) value


anEventSelector is #aboutToLeaveWorld
and this is not implemented in PasteUpMorph.

We have an empty block and that causes #removeModalWindow in a way I
do not understand yet.

But if we would have

     #aboutToLeaveWorld

Then it we probably would not have this problem.

I wonder  #aboutToLeaveWorld  where this comes form, Squeak 3.9 and
Squeak 5.0 do not have it either.
</pre>
        </blockquote>
        <pre wrap="">
It's not a method, it's an event selector:

     CurrentProject world triggerEvent: #aboutToLeaveWorld.

WebCamMorph>>intoWorld: aWorld


     super intoWorld: aWorld.
     camIsOn ifTrue: [self on]
                     ifFalse:[self off].
     self removeActionsForEvent: #aboutToEnterWorld.
     aWorld
         when: #aboutToLeaveWorld
         send: #outOfWorld:
         to: self
         with: aWorld.

similar stuff removed in the intervening years

B3DSceneMorph>>intoWorld: aWorld

     "The receiver is showing in the given world"
     aWorld ifNil:[^self].
     super intoWorld: aWorld.
     aWorld when: #aboutToLeaveWorld send: #suspendAcceleration to: self.
     aWorld when: #aboutToEnterWorld send: #restoreAcceleration to: self.
     self restoreAcceleration.

also for WonderlandCameraMorph
</pre>
        <blockquote type="cite">
          <pre wrap="">
--Hannes
</pre>
        </blockquote>
      </blockquote>
      <pre wrap="">

Thank you for pointing this out, Bob.

In Squeak 6.0a WebCamMorph is the only morph sending

     #when:send:to:with:


And there are only a few senders of

     #triggerEvent:

(see screen shot)

So how would you, Bob,  suggest to proceed?


--Hannes



</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="">
On 10/9/17, Marcel Taeumel <a class="moz-txt-link-rfc2396E" href="mailto:marcel.taeumel@hpi.de"><marcel.taeumel@hpi.de></a> wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">Hi Hannes,

if you can manage to set-up the modal child (window), that removal
should
happen automatically. Use SystemWindow >> #modalLockTo:. Also see Morph
</pre>
            <blockquote type="cite">
              <blockquote type="cite">
                <pre wrap="">
</pre>
              </blockquote>
            </blockquote>
            <pre wrap="">#openModal:. For "control-flow-modality", instead, you should use a
DialogWindow. See DialogWindow >> #getUserResponse.

Best,
Marcel
Am 09.10.2017 11:53:04 schrieb H. Hirzel <a class="moz-txt-link-rfc2396E" href="mailto:hannes.hirzel@gmail.com"><hannes.hirzel@gmail.com></a>:
Hello

I start a separate thread for the issue brought up in the tread

MorphicProject subclass: #EtoysProject


To see it in action make sure

EToys-hjh.308.mcz

is loaded. It contains a fix for the menuTitleBorderColor which makes
the following Etoys project load smoothly.

Then drop the Etoys project file

<a class="moz-txt-link-freetext" href="http://squeakland.org/content/articles/attach/FollowRoad.012.pr">http://squeakland.org/content/articles/attach/FollowRoad.012.pr</a>

onto the desktop.



When I choose 'World menu' -> 'Previous project', the following happens




----------------------------------
Project class
----------------------------------

returnToPreviousProject
"Return to the project from which this project was entered. Do
nothing if the current project has no link to its previous project."

| prevProj |
prevProj := CurrentProject previousProject.
prevProj ifNotNil: [prevProj enter: true revert: false
saveForRevert: false].



---------------------
MorphicProject(Project)

enter: returningFlag revert: revertFlag saveForRevert: saveForRevert
"Install my ChangeSet, Transcript, and scheduled views as current
globals. If returningFlag is true, we will return to the project from
whence the current project was entered; don't change its
previousProject link in this case.
If saveForRevert is true, save the ImageSegment of the project
being left.
If revertFlag is true, make stubs for the world of the project
being left.
If revertWithoutAsking is true in the project being left, then
always revert."

......
CurrentProject world triggerEvent: #aboutToLeaveWorld.
.....


----------------

PasteUpMorph
--------------------

triggerEvent: anEventSelector
"Evaluate all actions registered for . Return the
value of the last registered action."

^(self actionForEvent: anEventSelector) value


------------------------
PasteUpMorph
------------------------


removeModalWindow
self deprecated: 'The global becomeModal is no longer supported, use
e.g. a dialog window'.
"self modalWindow: nil"



As mentioned in the thread
MorphicProject subclass: #EtoysProject
the issue may be "resolved" by just commenting out the deprecation
message.



removeModalWindow

"self deprecated: 'The global becomeModal is no longer supported, use
e.g. a dialog window'. "

self flag: #fixMe.

"self modalWindow: nil"



Should we do this for the moment until is is more clear how the
navigation mechanism in Etoys works?

Other suggestions?


Kind regards

Hannes Hirzel




</pre>
          </blockquote>
        </blockquote>
        <pre wrap="">

</pre>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">
</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>