[squeak-dev] How to force selection update in the debugger?

Bob Arning arning315 at comcast.net
Thu Nov 15 20:44:39 UTC 2012


This is fun! If you use #send rather than #doStep, you can watch code 
run like a movie.

doStepSeveral

     | n |

     n := 500.

     n timesRepeat: [
         self send.
         self changed: #contentsSelection.
         World displayWorldSafely.
         (Delay forMilliseconds: 250) wait.
     ].

Cheers,
Bob

On 11/15/12 8:39 AM, Bert Freudenberg wrote:
> But this is how Morphic drawing works. If only your text morph 
> changed, then only that morph will be redrawn. And since no events are 
> processed in that loop, this should be the case.
>
> - Bert -
>
> On 15.11.2012, at 09:16, Eliot Miranda <eliot.miranda at gmail.com 
> <mailto:eliot.miranda at gmail.com>> wrote:
>
>> Hi Bob,
>>
>>    thanks, but no thanks <blush>.  I want to see the update as fast 
>> as possible, even if it flickers like crazy.  I don't want to display 
>> the whole world, just the text morph in question.
>>
>>
>> On Wed, Nov 14, 2012 at 11:13 AM, Bob Arning <arning315 at comcast.net 
>> <mailto:arning315 at comcast.net>> wrote:
>>
>>     This works for me:
>>
>>     doStepSeveral
>>
>>         10 timesRepeat: [
>>             self doStep.
>>             self changed: #contentsSelection.
>>             World displayWorldSafely.
>>             (Delay forMilliseconds: 100) wait.    "in case you want
>>     to see each step"
>>         ]
>>
>>
>>     Cheers,
>>     Bob
>>
>>     On 11/14/12 1:26 PM, Eliot Miranda wrote:
>>>     Hi All,
>>>
>>>         I submitted a run until feature for the debugger to the
>>>     Squeak inbox recently and would commit it to trunk except that
>>>     I'd like the option of having the selection update on each step.
>>>      But I can't see how to do that.  I *think* selection update is
>>>     done with a callback here in Debugger>>contents:selection:
>>>
>>>
>>>     Smalltalk isMorphic ifTrue:
>>>     [World
>>>     addAlarm: #changed:
>>>     withArguments: #(contentsSelection)
>>>     for: self
>>>     at: (Time millisecondClockValue + 200)].
>>>
>>>     And I'm not sure how this causes the selection to update.  Is it
>>>     part of text morph draw or a separate thing?  This is too
>>>     convoluted to look through.  So perhaps someone can help e.  If
>>>     I want the selection to redraw what's the minimum action
>>>     necessary.  This is as part of a loop that looks like
>>>
>>>     [self selectedContext == context
>>>     and: [(value := receiver with: context executeMethod: method) ==
>>>     false]] whileTrue:
>>>     [self doStep].
>>>
>>>     i.e. after the doStep I'd like to force the code pane to update
>>>     its selection.
>>>
>>>     AdvThanksance
>>>     -- 
>>>     best,
>>>     Eliot
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>> -- 
>> best,
>> Eliot
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121115/b12ebbd4/attachment.htm


More information about the Squeak-dev mailing list