« Return to Thread: [squeak-dev] Algernon modification to register as an eventListener into HandMorph

[squeak-dev] Algernon modification to register as an eventListener into HandMorph

by Balázs Kósi :: Rate this Message:

Reply to Author | View in Thread

Hi,

Algernon uses Hernan Tylim's MultipleFocusHolder code to capture
keyboard events [1].
I made a small modification [2] to use the event listener facilities
in HandMorph instead.
But I had to change HandMorph >> sendListenEvent:to: to get it work [3].
In my version we dispatch the original event to the listeners, not
copies of it, so we can set the wasHandled flag.
This may cause problems in the other users [4], and may against its design.
What do you think?

Thanks, Balázs

[1] MultipleFocusHolder code overrides some methods changed after its
release; and it's released under LGPL, afaik.
[2] Saved it into the Algernon repository:
http://www.squeaksource.com/Algernon.html as Algernon-kb.13.mcz
[3] The change from ar's code:

sendListenEvent: anEvent to: listenerGroup
        "Send the event to the given group of listeners"
        listenerGroup ifNil:[^self].
        listenerGroup do:[:listener|
                listener ifNotNil:[listener handleListenEvent: anEvent copy]].

to:

sendListenEvent: anEvent to: listenerGroup
        "Send the event to the given group of listeners"
       
        listenerGroup ifNil: [ ^self ].
        listenerGroup do: [ :listener |
                listener ifNotNil: [
                        listener handleListenEvent: anEvent ] ]

[4] In my image they are EventRecorderMorph and RemoteHandMorph, and
they both store the last event they handled.
These can be fixed pretty easily, imho.

 « Return to Thread: [squeak-dev] Algernon modification to register as an eventListener into HandMorph

LightInTheBox - Buy quality products at wholesale price