Can some Morphic gurĂº check this?

Thanks!
Guille

http://code.google.com/p/pharo/issues/detail?id=2517&q=support&colspec=ID%20Type%20Status%20Summary%20Milestone%20Difficulty

On Mon, Jun 7, 2010 at 4:34 AM, Mariano Martinez Peck <[email protected]
> wrote:

> Sorry I forget to send the thread:
>
>
> http://forum.world.st/Putting-Algernon-and-WorkingSet-in-a-Dev-image-td1295930.html#a2068260
>
> Cheers
>
> Mariano
>
> **
> On Mon, Jun 7, 2010 at 9:33 AM, Mariano Martinez Peck <
> [email protected]> wrote:
>
>> Hi Guille. Yes, some months ago I discovered that changeset. I separated
>> it, saved into a .ch, loaded it into a PharoCore clean image and I tried to
>> understood it.
>> My knoweldege about Morhpic is very limited, but the changed looked of for
>> me.
>>
>> What would be cool is to commit to inbox such changes. Create an issue
>> like "*support various focus holders for **HandMorph *"
>> Then, send a separated mail about this changes and get feedback. If agree,
>> we can integrate it in the core. With this, at least Algernon doesn't have
>> to do such hack.
>>
>> I also asked this to Romian as he was developing WorkingSet and the
>> problem was that you couldn't have both at the same time because of the
>> shortcuts. These changes may solve that. Although he didn't have time to
>> look at it.
>>
>> Cheers
>>
>> Mariano
>>
>>
>> On Mon, Jun 7, 2010 at 5:54 AM, Guillermo Polito <
>> [email protected]> wrote:
>>
>>> Hi, i was looking at this issue and I have some questions :):
>>>
>>> - There are some changes to HandMorph in a changeset hardcoded in the
>>> ConfigurationOfAlgernon.  As Mariano said here (
>>> http://forum.world.st/Putting-Algernon-and-WorkingSet-in-a-Dev-image-td1295930.html#a1295941)
>>> "The main change does the simples modifications to HandMorph for it to
>>> support various focus holders".  Is it safe to integrate it in Pharo?  If
>>> so, should it be integrated in the core Morph package?   The changeset is
>>> the following:
>>>
>>> * '''From Squeak3.7gamma of ''''17 July 2004'''' [latest update: #5985]
>>> on 9 August 2004 at 7:56:10 pm''!
>>> "Change Set:        MultipleFocusHolder-hpt
>>> Date:            9 August 2004
>>> Author:            Hernan Tylim
>>>
>>> This changesets does the simplest modifications to HandMorph for it to
>>> support various focus holders.
>>>
>>> The important changes are:
>>>
>>> * addiionalKeyboardFocuses instance variable was added with its getter
>>> and setter methods.
>>>
>>> * HandMorph>>sendKeyboardEvent: was changed to traverse the list of
>>> keyboard focus holders and call HandMorph>>sendEvent:focus:clear: to each
>>> one of them.
>>>
>>> * HandMorph>>sendEvent:focus:clear: was changed to preserve the
>>> ''wasHandled'' status of the event, before that info were lost because the
>>> Event instance were copied before passed to the Morph.
>>> "!
>>>
>>> Morph subclass: #HandMorph
>>>     instanceVariableNames: ''mouseFocus keyboardFocus eventListeners
>>> mouseListeners keyboardListeners mouseClickState mouseOverHandler
>>> lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles
>>> temporaryCursor temporaryCursorOffset hasChanged savedPatch userInitials
>>> lastEventBuffer genieGestureProcessor additionalKeyboardFocuses ''
>>>     classVariableNames: ''DoubleClickTime EventStats NewEventRules
>>> NormalCursor PasteBuffer ShowEvents ''
>>>     poolDictionaries: ''EventSensorConstants''
>>>     category: ''Morphic-Kernel''!
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/8/2004 01:52''!
>>> addAdditionalKeyboardFocus: aMorph
>>>     (self additionalKeyboardFocuses includes: aMorph)
>>>         ifFalse: [self additionalKeyboardFocuses addFirst: aMorph]! !
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:47''!
>>> additionalKeyboardFocuses
>>>     ^additionalKeyboardFocuses ifNil: [additionalKeyboardFocuses _
>>> OrderedCollection new].! !
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/8/2004 00:12''!
>>> clearFocusHolder: aMorph
>>>     self keyboardFocus == aMorph
>>>         ifTrue:     [^self keyboardFocus: nil].
>>>     (self additionalKeyboardFocuses includes: aMorph)
>>>         ifTrue: [self removeAdditionalKeyboardFocus: aMorph].! !
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:48''!
>>> fullKeyboardFocuses
>>>     ^self additionalKeyboardFocuses copyWith: self keyboardFocus.! !
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:43''!
>>> keyboardFocuses
>>>     keyboardFocuses ifNil: [keyboardFocuses := OrderedCollection new].
>>>     ^keyboardFocuses! !
>>>
>>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:49''!
>>> removeAdditionalKeyboardFocus: aMorph
>>>     self additionalKeyboardFocuses remove: aMorph! !
>>>
>>> !HandMorph methodsFor: ''private events'' stamp: ''hpt 8/8/2004 01:18''!
>>> sendFocusEvent: anEvent to: focusHolder clear: aBlock
>>>     "Send the event to the morph currently holding the focus"
>>>     | result w e |
>>>     w _ focusHolder world ifNil:[^ aBlock value].
>>>     w becomeActiveDuring:[
>>>         ActiveHand _ self.
>>>         ActiveEvent _ anEvent.
>>>         e _ (anEvent transformedBy: (focusHolder transformedFrom: self)).
>>>         result _ focusHolder handleFocusEvent: e    .
>>>         anEvent wasHandled: e wasHandled.
>>>     ].
>>>     ^result! !
>>>
>>> !HandMorph methodsFor: ''private events'' stamp: ''hpt 8/8/2004 01:09''!
>>> sendKeyboardEvent: anEvent
>>>     "Send the event to the morph currently holding the focus, or if none
>>> to the owner of the hand."
>>>
>>>     self fullKeyboardFocuses do: [:focusHolder |
>>>         "(anEvent keyCharacter = $\) ifTrue: [self halt]."
>>>         anEvent wasHandled
>>>             ifFalse: [self sendEvent: anEvent focus: focusHolder
>>> clear:[self clearFocusHolder: focusHolder]]].! !
>>>
>>> Morph subclass: #HandMorph
>>>     instanceVariableNames: ''mouseFocus keyboardFocus eventListeners
>>> mouseListeners keyboardListeners mouseClickState mouseOverHandler
>>> lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles
>>> temporaryCursor temporaryCursorOffset hasChanged savedPatch userInitials
>>> lastEventBuffer genieGestureProcessor additionalKeyboardFocuses''
>>>     classVariableNames: ''DoubleClickTime EventStats NewEventRules
>>> NormalCursor PasteBuffer ShowEvents''
>>>     poolDictionaries: ''EventSensorConstants''
>>>     category: ''Morphic-Kernel''!
>>> *'
>>>
>>> It should be nice someone who knows well morphic checks it.
>>>
>>> Cheers,
>>> Guille
>>>
>>
>>
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to