I upload new version 0.7:
- clipboard operations
- more navigation shortcuts
- fixed bugs when editing text from start or end text positions
- optimized text drawing to draw only visible lines
- optimized TxInterval>>contains:. So now #newTextContents: works on big
strings

With this version I again investigate beautiful morphic events code (you
should install slice 10427).
I add shortcuts "Character end ctrl" and "Character home ctrl" to move
cursor at text end and start. And it was not work.
I debug what happens and KeyboardEvent from "Character home ctrl" was
printed as ctrl+d. What's the crap!
Ok I found this code:

modifiedCharacter
    self flag: #hack.
    "Hack me.  When Ctrl is pressed, the key ascii value is not right and
we have to do something ugly"
    ^(self controlKeyPressed and: [ (#(MacOSX Windows) includes: Smalltalk
os current platformFamily) and: [ keyValue <= 26 ]])
        ifTrue: [ (self keyValue + $a asciiValue - 1) asCharacter ]
        ifFalse: [ self keyCharacter ]

I don't know why such complicated code needed but with only "^self
keyCharacter" you will replace many standart shortcuts with some random
behaviour.
So I just extract special logic to method and put here special checking for
home and end characters:

KeyboardEvent>>hasSpecialCTRLKeyValue
"
    4 - Character end
    1 - Character home
"

    ^ self controlKeyPressed and: [ keyValue <= 26 & (keyValue ~= 4) &
(keyValue ~= 1) ]

And I remove dublication in printing keyboard event.

Slice with fix here https://pharo.fogbugz.com/default.asp?10427. Should I
put it at configuration dependency?

I read about new events system at pharo vision. Is new system will remove
such hacks?

Reply via email to