Hi Etienne,

On Tuesday, March 12, 2002, 7:12:15 PM, you wrote:

EA> What I want is : a modal behaviour for a face; all events in this face
EA> are grabbed by itself and dispatched  toward its sub-faces. All events 
EA> outside this face are ignored.

It should be sufficient to modify:

>> print mold get in system/view 'wake-event
func [port /local event no-btn][
    event: pick port 1
    if none? event [
        if debug [print "Event port awoke, but no event was present."]
        return false
    ]
    either not pop-face [
        do event
        empty? screen-face/pane
    ] [
        either any [pop-face = event/face within? event/offset win-offset? pop-face 
pop-face/size] [
            no-btn: false
            if block? get in pop-face 'pane [
                no-btn: foreach item pop-face/pane [if get in item 'action 
[break/return false] true]
            ]
            if any [all [event/type = 'up no-btn] event/type = 'close] [hide-popup]
            do event
        ] [
            if pop-face/action [
                if not find [move time] event/type [hide-popup]
                do event
            ]
        ]
        none? find pop-list pop-face
    ]
]

(Notice that if you create a new one instead of patching it, you
should install it in system/ports/wait-list/1/awake.)

Regards,
   Gabriele.
-- 
Gabriele Santilli <[EMAIL PROTECTED]>  --  REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to