On 4/12/06, P T Withington <[EMAIL PROTECTED]> wrote:
This looks like a 'stupid AS trick' to me. Don't try this at home.
I would just change the loop to test d.enabled, and change
LzDelegate.disable to just set the flag and not muck with the innards
of the delegate.
[This is why nullable types suck.]
On 2006-04-11, at 11:50 EDT, Henry Minsky wrote:
> 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
> [EMAIL PROTECTED]
> _______________________________________________
> Laszlo-dev mailing list
> [email protected]
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
--
Henry Minsky
Software Architect
[EMAIL PROTECTED]
_______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
