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/[email protected]/