PDA

View Full Version : [FIXED][3.0rc1] show() with an Element hides the buttons



stever
27 Apr 2009, 7:04 PM
Try this on both IE7 (or IE8 in compatibility mode) and Firefox:


new Ext.Window({title:'test', height:200,width:300, items:{height:40},buttons:[{text:'t1'},{text:'t2'}]}).show(Ext.getBody())

In IE7, the buttons do not get displayed.

stever
1 May 2009, 10:56 AM
Seems that the buttons are also hidden in Safari (and Chrome?).

Animal
2 May 2009, 11:51 PM
This must be fixed in SVN because I can't reproduce it in any examples pages in my development directory.

evant
3 May 2009, 2:37 AM
I think I might have committed a fix for this.

aconran
4 May 2009, 10:31 AM
Looks resolved. Steve R, could you please confirm?

stever
4 May 2009, 6:43 PM
Not fixed. I just tried with the SVN of this minute, opened up IE8, hit compatibility mode button, and added the example into my local build and got this again:





new Ext.Window({title:'test', height:200,width:300, items:{height:40},buttons:[{text:'t1'},{text:'t2'}]}).show(Ext.getBody())

evant
5 May 2009, 7:37 AM
Confirmed, it only happens with animations. Try the following:



Ext.override(Ext.Window, {
afterShow : function(isAnim){
this.proxy.hide();
this.el.setStyle('display', 'block');
this.el.show();
if(this.maximized){
this.fitContainer();
}
if(Ext.isMac && Ext.isGecko){ // work around stupid FF 2.0/Mac scroll bar bug
this.cascade(this.setAutoScroll);
}

if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){
Ext.EventManager.onWindowResize(this.onWindowResize, this);
}
this.doConstrain();
if(this.layout){
this.doLayout();
}
if(this.keyMap){
this.keyMap.enable();
}
this.toFront();
this.updateHandles();
if(isAnim && (Ext.isIE || Ext.isWebKit)){
var sz = this.getSize();
this.onResize(sz.width, sz.height);
}
this.fireEvent("show", this);
},

// private
animShow : function(){
this.proxy.show();
this.proxy.setBox(this.animateTarget.getBox());
this.proxy.setOpacity(0);
var b = this.getBox(false);
b.callback = this.afterShow.createDelegate(this, [true], false);
b.scope = this;
b.duration = .25;
b.easing = 'easeNone';
b.opacity = .5;
b.block = true;
this.el.setStyle('display', 'none');
this.proxy.shift(b);
}
});

stever
5 May 2009, 4:52 PM
The fix that is in SVN works great. Thanks!