<div dir="auto">Cool, thanks for the explanations. At some point the canvas was responsible for drawing the coordinate system on the halos, right? Maybe that thing with the halo cames from that? Or maybe some other experiment, I seem to remember that at some point you highlighted the target of the halo, and it required redrawing, it could be related to that? I’ll remove that code in my image and see if I run into any problem. Thanks!</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 30 Jan 2022 at 3:50 AM Juan Vuletich <<a href="mailto:JuanVuletich@zoho.com">JuanVuletich@zoho.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Hi Luciano,<br>
<br>
I don't have a real solution for these issues now, but some comments <br>
that may be useful.<br>
(inline)<br>
<br>
On 1/29/2022 5:06 AM, Luciano Notarfrancesco via Cuis-dev wrote:<br>
> Hi Juan,<br>
> I start from the newest image from the repo, install new updates, and <br>
> then load all TrueType fonts.<br>
> It’s not a very big deal, it’s usable now that I fixed my own code to <br>
> avoid forcing everything to redraw every second, and feels even <br>
> smoother with HybridCanvas. Anyway I looked at it a little with <br>
> AndrasSystemProfiler and it seems that every keystroke on a workspace <br>
> triggers redrawing the full workspace, spending time mostly filling <br>
> the background twice (first for WorkspaceWindow and then <br>
> TextModelMorph). But I don’t understand all the details of how the <br>
> world is drawn, maybe this is perfectly normal. And I guess it is <br>
> nontrivial to compute a smaller area to redraw when a character is added.<br>
<br>
Disabling syntax highlight removes one of the background fills. I <br>
believe this is because with syntax highlight, some fonts may have <br>
different glyph metrics for different styles, so all text could reflow.<br>
<br>
In any case, #fit clearly needs some attention to optimization to avoid <br>
unneded redraws. Right now, it only tries to be sure to update if needed <br>
(or even if not!).<br>
<br>
> Also, if I open a browser, then open the halos in the browser and move <br>
> the mouse pointer over the system categories list, every time a list <br>
> item is highlited the whole browser is redrawn. This doesn’t happen <br>
> without the halo, in that case only the unhighlighted and highlighted <br>
> items are redrawn. To see the redrawing I changed BoxedMorph>>drawOn: <br>
> to use ‘Color random’ instead of ‘color’.<br>
><br>
<br>
In #updateBoundsIn:addDamageTo: (be sure to tweak it in the active <br>
canvas class to see effects) the haloMorphsDo: iteration effectively <br>
means that if a morph has a halo, and some inner submorph <br>
#isRedrawNeeded, the it marks the halo as #redrawNeeded. But later, when <br>
dirty rectangles are merged to reduce the number of draw operations, it <br>
ends redrawing everything in that rectangle.<br>
<br>
Truth is that I don't know why the halo is marked like that. I don't <br>
remember why was that needed, and I don't see ill effects if I <br>
completely remove that iteration. And the bogus drawing you see goes <br>
away. Maybe this is the solution for this one.<br>
<br>
Thanks,<br>
<br>
-- <br>
Juan Vuletich<br>
<a href="http://www.cuis-smalltalk.org" rel="noreferrer" target="_blank">www.cuis-smalltalk.org</a><br>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br>
<a href="https://github.com/jvuletich" rel="noreferrer" target="_blank">https://github.com/jvuletich</a><br>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a><br>
<a href="https://independent.academia.edu/JuanVuletich" rel="noreferrer" target="_blank">https://independent.academia.edu/JuanVuletich</a><br>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" rel="noreferrer" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a><br>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" rel="noreferrer" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a><br>
@JuanVuletich<br>
<br>
</blockquote></div></div>