<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        > <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">4. Ctrl plus stop brings you into an MVC project where you can revert</span><br style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">> the 'self halt'</span><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">That's a bug. :-D MVC should be entered automatically. There might be an issue in Project >> #</span><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">enterForEmergencyRecovery.</span></span></div><div><br></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">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.10.2019 13:49:48 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">Hi Marcel<br><br>With this fix you did here, this test now passes<br><br>1. Image Squeak5.3alpha latest update: #19124<br>2. Put a 'self halt' into the LazyListMorph >> #drawOn: method<br>3. The lists get red with a yellow X in the System Brower.<br>4. Ctrl plus stop brings you into an MVC project where you can revert<br>the 'self halt'<br>5. Jump back to the original project.<br><br>Result: The Morphic project is fixed after an error which caused the<br>GUI to stop.<br><br>Regards<br>Hannes<br><br>On Tue, 15 Oct 2019 11:30:30 0000, commits@source.squeak.org<br><commits@source.squeak.org> wrote:<br>> Marcel Taeumel uploaded a new version of Morphic to project The Trunk:<br>> http://source.squeak.org/trunk/Morphic-mt.1575.mcz<br>><br>> ==================== Summary ====================<br>><br>> Name: Morphic-mt.1575<br>> Author: mt<br>> Time: 15 October 2019, 1:30:24.148785 pm<br>> UUID: c7bde074-ddad-864a-a5b3-8b078736fe2f<br>> Ancestors: Morphic-mt.1574<br>><br>> More robustness: (1) Catch both Error and Halt in Morphic drawing and (2)<br>> Reset drawing errors in morphs when restoring the Display.<br>><br>> =============== Diff against Morphic-mt.1574 ===============<br>><br>> Item was added:<br>> + ----- Method: MorphicProject>>restoreDisplay (in category 'scheduling &<br>> debugging') -----<br>> + restoreDisplay<br>> +     "Give all morphs a chance to draw again."<br>> +     self world ifNotNil: [:w | w allMorphsDo: [:ea | ea removeProperty:<br>> #errorOnDraw ]].<br>> +<br>> +      super restoreDisplay.!<br>><br>> Item was changed:<br>>   ----- Method: WorldState>>displayWorldSafely: (in category 'update cycle')<br>> -----<br>>   displayWorldSafely: aWorld<br>>      "Update this world's display and keep track of errors during draw<br>> methods."<br>><br>>         | finished classesWithErrors |<br>>    finished := false.<br>>        <br>>          [finished] whileFalse: [<br>> +                [aWorld displayWorld. finished := true] on: Error, Halt do: [:ex |<br>> -              [aWorld displayWorld. finished := true] on: Error do: [:ex |<br>>                      "Handle a drawing error"<br>>                        | err rcvr errCtx errMorph |<br>>                      err := ex description.<br>>                    rcvr := ex receiver.<br>><br>>                        errCtx := thisContext.<br>>                    [<br>>                                 errCtx := errCtx sender.<br>>                                  "Search the sender chain to find the morph causing the problem"<br>>                                 [errCtx notNil and:[(errCtx receiver isMorph) not]]<br>>                                       whileTrue:[errCtx := errCtx sender].<br>>                              "If we're at the root of the context chain then we have a fatal<br>> drawing problem"<br>>                                  errCtx ifNil:[^Project current fatalDrawingError: err].<br>>                                   errMorph := errCtx receiver.<br>>                              "If the morph causing the problem has already the #drawError flag set,<br>>                               then search for the next morph above in the caller chain."<br>>                                   errMorph hasProperty: #errorOnDraw<br>>                        ] whileTrue.<br>>                      errMorph setProperty: #errorOnDraw toValue: true.<br>><br>>                           "Catch all errors, one for each receiver class."<br>>                        classesWithErrors ifNil: [classesWithErrors := IdentitySet new].<br>>                          (classesWithErrors includes: rcvr class) ifFalse: [<br>>                               classesWithErrors add: rcvr class.<br>>                                ToolSet debugException: ex].<br>><br>>                        "Repaint all to catch all errors now and not if the debugger will<br>> appear."<br>>                        aWorld fullRepaintNeeded.<br>>                 ]].!<br>><br>><br>><br><br></commits@source.squeak.org></div></blockquote>
                                        </div></body>