[squeak-dev] some CharacterScanner methods weirdly send setStopConditions twice

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Sep 28 23:13:12 UTC 2013


OK, I understand the  fix in CharacterBlockScanner because it is better
explained in DisplayScanner:
sending stopConditions will initialize alignment inst. var., which for some
reasons wasn't set in MVC...
Not sure that this is the right fix though... And not sure how this works
in Morphic too...

I however have found more glitches in Morphic:
1) if alignment is centered, you can set the blinking cursor to the left of
the window by double clicking very near the left border.
    Normally, the cursor should go the left of leftmost character...
    I suspect that this could be an unset alignment defaulting to left flush
    (seing all these alignment ifNil:[textStyle alignment] is a clue)

2) in case of WideString, you cannot easily select the leftmost character
in a centered line by help of the mouse (unless you go left to window
border).
    I found that this is due to the leftMargin test in line from
scanMultiCharactersFrom:...
        nextDestX > rightX ifTrue: [destX ~= leftMargin ifTrue: [^stops
crossedX]].
    It did work OK when this was firstDestX, so it's me who broke it with
Multilingual-nice.179
    Indeed, only a MultiCompositionScanner would initialize firstDestX :=
leftMargin, while the other scanner let it nil...

3) The blinking cursor vanishes when cursor is moved at the right of a
right flushed line.
    it even vanishes sooner if last char is blank (space/tab) and the
cursor is moved with arrow key (different from mouse click!)



2013/9/29 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>

> Argh! case of blindness!
> I did not find because I looked at the date and found nothing before 2006!
>
>
> 2013/9/29 Bob Arning <arning315 at comcast.net>
>
>>  Looks like it's already there
>>
>> http://ftp.squeak.org/updates/updates.list
>>
>> Cheers,
>> Bob
>>
>>  On 9/28/13 5:30 PM, Nicolas Cellier wrote:
>>
>>  Ah OK, I have some of these images, but first thought about browsing
>> the web...
>>  It would be nice if http://update.squeakfoundation.org/external/updates<http://update.squeakfoundation.org/external/updates/updates.list>were copied to
>> http://ftp.squeak.org/updates though.
>>
>>
>>
>> 2013/9/28 Bob Arning <arning315 at comcast.net>
>>
>>>  Oh, I saved *lots* of them. In this case I looked at old images until
>>> I found one containing a different version of that method. I don't know if
>>> anyone has saved everything one one place, but if you download a lot of old
>>> images, you might be able to find the answer (although some of them had
>>> change sets expunged before being made available). You can get the one in
>>> question from http://ftp.squeak.org/3.8/
>>>
>>> Cheers,
>>> Bob
>>>
>>>   On 9/28/13 4:30 PM, Nicolas Cellier wrote:
>>>
>>>  Ah, thanks Bob, it seems you saved some historical bits !
>>>
>>>  I saw that previous timestamp was BG 5/31/2003, I found that it might
>>> be 4717CharBlockScannerFix-slg.cs in
>>> http://update.squeakfoundation.org/external/updates/updates.list but I
>>> did not find any way to browse these change sets.
>>>
>>>  Aren't there available somewhere?
>>>
>>>
>>> 2013/9/28 Bob Arning <arning315 at comcast.net>
>>>
>>>>  Change Set:        CenteredTextFix-BG
>>>> Date:            31 May 2003
>>>> Author:            Boris Gaertner
>>>>
>>>> In an MVC project, centered text is not displayed centered when it is
>>>> edited. This is an attempt to fix that glitch. Please have a look at it and
>>>> give it some testing. After all, a careless change in CharacterScanner can
>>>> easily ruin the image.
>>>> =======================
>>>>
>>>> This was when a second #setStopConditions was added preceding the
>>>> rightMargin setting. My guess is nobody thought to remove the original
>>>> #setStopConditions further down. Then in 2006 the new #setStopConditions
>>>> was moved after the rightMargin setting.
>>>>
>>>> Cheers,
>>>> Bob
>>>>
>>>>   On 9/28/13 3:51 PM, Nicolas Cellier wrote:
>>>>
>>>>   Sending twice some complex initialization message with inter-mixed
>>>> state messing smells...
>>>> This is for example in CharacterBlockScanner>>buildCharacterBlockIn:
>>>>
>>>>  I found http://bugs.squeak.org/view.php?id=3570 which were included
>>>> in Graphics-ar.39
>>>> (in 3.9 repository see
>>>> http://source.squeak.org/39a/Graphics-ar.39.diff)...
>>>> ...but the doubled setStopConditions was there already, the change just
>>>> swapped some lines...
>>>>
>>>>  This is not in the Multilingual branch, so it seems newer than 2002...
>>>>
>>>>  Does anyone remember where to dig to understand why, which bug it
>>>> solves, which feature it supports, and whether it is really needed?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130929/928b97a2/attachment.htm


More information about the Squeak-dev mailing list