[Laszlo-dev] disabling delegates

Henry Minsky henry.minsky at gmail.com
Tue Apr 11 11:50:29 EDT 2006


There is a method for disabling a delegate which is currently implemented as

LzDelegate.prototype.disable = function (){
    if ( !this.enabled ) return;
    this.enabled = false;
    this.disc = this.c;
    this.c = null;
}

This has the unfortunate side effect of causing an error in DHTML runtime if
you then try to call
this delegate, because the inner loop of LzEvent.sendEvent does

    for (var i = dll; i >= 0; i--){
        d = this.delegateList[ i ];
        //pointer may be bad due to deletions
        if ( d && ! d.event_called){
            d.event_called = true; //this delegate has been called
            calledDelegates.push( d );
            // d.execute( sd ); inlined
            // We don't worry about deleted contexts here, because
            // we assume that delegates registered on events are
            // properly managed
            d.c[d.f]( sd );
        }
    }

And d.c will be null, causing an error in 'real' javascript. Should I put a
check here for the disabled flag,
or should we bind d.c in LzDelegate to some inert event while it is
disabled?



--
Henry Minsky
Software Architect
hminsky at laszlosystems.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20060411/6f263fb4/attachment.html


More information about the Laszlo-dev mailing list