Hi,
While testing release v2.55a (yeah), I noticed we still have the same old
problem with NS6 and buttonimage.
The problem is, it doesn't show up first load, only after a refresh. If you
want to test a second time, you have to empty the cache.
I think this problem also occurs with IE5+ browsers, but then only when
loading pages over the internet, not locally.

I had a look, and it seems DynImage is not actually at fault, it loads as it
should.
The problem is in buttonimage.js, on line 53:

this.setSize(this.defaultImage.width,this.defaultImage.height)

At this point the button is resized to the same dimensions as the DynImage.
It seems that the script fails sometimes, because the we don't have the
width/height coords yet.

Putting the above line in a setTimeout solved the problem. once again, it's
not the delay that's important, it's just allowing the browser to process
other activities, so the x/y val is available.
So the code looks like this:


setTimeout(this+".setSize("+this+".defaultImage.width,"+this+".defaultImage.
height);",0);

This is working, and solves the problem with NS6 (probably the others too),
but it's an ugly hack.
Does anyone have a better idea?

I checked scrollbar.js, which had the same bug, and if we change lines 121,
122, 127 to these:

  if (this.vertical)
setTimeout(this+".setWidth("+this+".troughImage.width,false);",0)
  if (this.horizontal)
setTimeout(this+".setHeight("+this+".troughImage.height,false);",0)


setTimeout(this+".knob.setSize("+this+".knobImage.width,"+this+".knobImage.h
eight);",0)

then the scrollbars show up on first load in all widgets using them, (So far
tested to fix the bug in NS6/Mozilla)
This would clear up a lot of the remaining bugs in NS6/Mozilla.

Is it ok to dot setTimeouts through our code like this, or are there other
suggestions?

Cheers,
Richard.
www.richardinfo.com


_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/dynapi-dev@lists.sourceforge.net/

Reply via email to