Bug 283697 - Firefox Options (Preferences) panels are cropped (cut off). r=mconnor

This commit is contained in:
rob_strong@exchangecode.com 2007-09-02 15:05:53 -07:00
parent 40b1bda46b
commit 5a82e02f3f
4 changed files with 24 additions and 7 deletions

View File

@ -75,12 +75,12 @@
#endif
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
#ifdef USE_WIN_TITLE_STYLE
style="&prefWindow.styleWin;">
style="&prefWin.styleWin;">
#else
#ifdef XP_MACOSX
style="&prefWindow.styleMac;">
#else
style="&prefWindow.styleGNOME;">
style="&prefWin.styleGNOME;">
#endif
#endif

View File

@ -3,9 +3,9 @@
<!ENTITY prefWindow.titleGNOME "&brandShortName; Preferences">
<!-- When making changes to prefWindow.styleWin test both Windows Classic and
Luna since widget heights are different based on the OS theme -->
<!ENTITY prefWindow.styleWin "width: 42em; height: 44em;">
<!ENTITY prefWin.styleWin "width: 42em; min-height: 44em;">
<!ENTITY prefWindow.styleMac "width: 47em;">
<!ENTITY prefWindow.styleGNOME "width: 42em; height: 38.5em;">
<!ENTITY prefWin.styleGNOME "width: 42em; min-height: 44.5em;">
<!ENTITY paneMain.title "Main">
<!ENTITY paneTabs.title "Tabs">

View File

@ -268,5 +268,5 @@ filefield[disabled="true"] .fileFieldIcon {
/* bottom-most box containing a groupbox in a prefpane. Prevents the bottom
of the groupbox from being cutoff */
.bottomBox {
padding-bottom: 2px;
padding-bottom: 4px;
}

View File

@ -629,6 +629,8 @@
<property name="type" onget="return this.getAttribute('type');"/>
<property name="_paneDeck"
onget="return document.getAnonymousElementByAttribute(this, 'anonid', 'paneDeck');"/>
<property name="_paneDeckContainer"
onget="return document.getAnonymousElementByAttribute(this, 'class', 'paneDeckContainer');"/>
<property name="_selector"
onget="return document.getAnonymousElementByAttribute(this, 'anonid', 'selector');"/>
<property name="lastSelected"
@ -737,8 +739,6 @@
oldPane.selected = !(aPaneElement.selected = true);
this.lastSelected = aPaneElement.id;
this.currentPane = aPaneElement;
this._initialized = true;
// Only animate if we've switched between prefpanes
if (this._shouldAnimate && oldPane.id != aPaneElement.id) {
// Don't let the new pane content flex to the current window
@ -747,6 +747,23 @@
aPaneElement.style.opacity = 0.0;
this.animate(oldPane, aPaneElement);
}
else if (this._initialized && !this._shouldAnimate) {
var targetHeight = parseInt(window.getComputedStyle(this._paneDeckContainer, "").height);
targetHeight -= parseInt(window.getComputedStyle(this, "").paddingTop);
targetHeight -= parseInt(window.getComputedStyle(this, "").paddingBottom);
if (aPaneElement.contentHeight > targetHeight) {
// To workaround the bottom border of a groupbox from being
// cutoff an hbox with a class of bottomBox may enclose it.
// This needs to include its padding to resize properly.
// See bug 394433
var bottomPadding = 0;
var bottomBox = aPaneElement.getElementsByAttribute("class", "bottomBox")[0];
if (bottomBox)
bottomPadding = parseInt(window.getComputedStyle(bottomBox, "").paddingBottom);
window.innerHeight += bottomPadding + aPaneElement.contentHeight - targetHeight;
}
}
this._initialized = true;
}
break;
}