<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi Juan,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for encouragement :)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> <span style="color:black">Now these work: […]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Cool! </span>I just a did just a quick check and noticed a few regressions:
</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[1/0] fork.</p>
<p class="MsoNormal">5 seconds asDelay wait.</p>
<p class="MsoNormal">FillInTheBlankMorph request: 'What is your favorite color?'</p>
<p class="MsoNormal">"pressing Cancel won't terminate the UI and keeps looping at 100%"</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And this example stopped working properly when abandoning:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[self halt] ensure: [self halt]</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">To my regret I’m a bit short of time at the moment but I very much look forward to investigating your changes further a bit later; it’s a great learning opportunity for me :)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> <span style="color:black">I don't like that design. It means that there are times where the world is not in control, and then, for example, animations and stepping are halted. I removed a couple of those in Cuis, but some still remain.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal">I’m relieved to hear that; I didn’t like it when I saw it the first time so now I can study it with this in mind. Many thanks!</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sorry for not being able to respond right away.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best,</p>
<p class="MsoNormal">Jaromir</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNoSpacing"><span lang="CS">--</span></p>
<p class="MsoNoSpacing"><strong><span style="font-family:"Calibri Light",sans-serif;color:#333333;font-weight:normal">Jaromír Matas</span></strong><span style="font-family:"Calibri Light",sans-serif;color:#555555"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><span style="font-family:"Calibri Light",sans-serif;color:#2E75B6">mail@jaromir.net</span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><br>
<b>Sent: </b>Monday, July 11, 2022 23:59<br>
<b>To: </b><a href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a href="mailto:mail@jaromir.net">Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] FW: FW: Freezing UI - can't interrupt via Alt+.</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black">On 7/11/2022 6:16 PM, Jaromir Matas via Cuis-dev wrote:
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black">Hi Juan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">> The problem there is that the debugger for the 1/0 is opened when Morphic ends the current cycle, to reduce risk of breaking state.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Aaah, I see, thank you!; the fix works beautifully :)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Now even this example works:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">[1/0] fork.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">5 seconds asDelay wait.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">self inform: 'test'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">But unfortunately this one still doesn’t:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">[1/0] fork.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">5 seconds asDelay wait.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">self confirm: 'test'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">It raises an error because of Object >> #runningWorld associates the world with the active process and not the current UI (I’m not saying it’s wrong; I just don’t know because this all is way beyond my current
 skill level so I’m just observing Squeak evaluates the example ok). The comment even mentions: “This method could answer nil, if not in an UI process!” which seems to be our case…<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
This is fun. You keep finding corners in the system! Now these work: <br>
<br>
[1/0] fork.<br>
5 seconds asDelay wait.<br>
"self confirm: 'test'"<br>
"self request: 'Test' <br>
        initialAnswer: 'initial answer' <br>
        orCancel: [ ^nil ]"<br>
"FillInTheBlankMorph request: 'What is your favorite color?'"<br>
"<br>
    menu _ MenuMorph new.<br>
    1 to: 3 do: [:i |<br>
        entry _ 'Line', i printString.<br>
        sub _ MenuMorph new.<br>
        menu add: entry subMenu: sub.<br>
        #('Item A' 'Item B' 'Item C')  do:[:subEntry|<br>
            sub add: subEntry target: menu <br>
                action: #modalSelection: argument: {entry. subEntry}]].<br>
    menu invokeModal."<br>
<br>
(uncommenting the queries one at a time)<br>
<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black">Also, I’ve realized there are ‘sub-cycles’ run inside the UI in some cases; I’ve never really noticed and have no idea whether this is something to worry about: in Squeak or Pharo, when I run the “confirm:” test
 the inactive UI that evaluates the confirm: dialogue runs its subcycle which means that until the dialogue is dismissed there are two cycling loops – one belonging to the current UI and one belonging to the former UI running the dialogue…
<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black">  <br>
I don't like that design. It means that there are times where the world is not in control, and then, for example, animations and stepping are halted. I removed a couple of those in Cuis, but some still remain. We'll keep cleaning, as usual.<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black">Thanks again; apologies for just piling examples and no solution ;|<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Best regards,<o:p></o:p></span></p>
<p class="MsoNoSpacing"><span lang="CS" style="color:black">--</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><strong><span style="font-family:"Calibri Light",sans-serif;font-weight:normal">Jaromír Matas</span></strong><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><span style="color:black"><a href="mailto:mail@jaromir.net">mail@jaromir.net</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
Your input is most welcome.You find this kind of details, that most of us miss. Thanks for that.<br>
<br>
Cheers,<br>
<br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
<pre><a href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
</div>
</body>
</html>