diff --git a/mozilla/gfx/public/nsThemeConstants.h b/mozilla/gfx/public/nsThemeConstants.h index f9eccce1d22..a06787d4705 100644 --- a/mozilla/gfx/public/nsThemeConstants.h +++ b/mozilla/gfx/public/nsThemeConstants.h @@ -85,7 +85,7 @@ #define NS_THEME_TREEVIEW_HEADER_SORTARROW 47 // Open tree widget twisty -#define NS_THEME_TREEVIEW_TWISTY_OPEN 48 +#define NS_THEME_TREEVIEW_TWISTY_OPEN 48 // A horizontal progress bar. #define NS_THEME_PROGRESSBAR 51 @@ -127,7 +127,10 @@ #define NS_THEME_SPINNER_DOWN_BUTTON 74 // A scrollbar. -#define NS_THEME_SCROLLBAR 81 +#define NS_THEME_SCROLLBAR 80 + +// A small scrollbar. +#define NS_THEME_SCROLLBAR_SMALL 81 // A scrollbar button (up/down/left/right) #define NS_THEME_SCROLLBAR_BUTTON_UP 82 diff --git a/mozilla/layout/style/nsCSSKeywordList.h b/mozilla/layout/style/nsCSSKeywordList.h index daf05b45f3d..11324dac2e9 100644 --- a/mozilla/layout/style/nsCSSKeywordList.h +++ b/mozilla/layout/style/nsCSSKeywordList.h @@ -380,6 +380,7 @@ CSS_KEY(s, s) CSS_KEY(s-resize, s_resize) CSS_KEY(scroll, scroll) CSS_KEY(scrollbar, scrollbar) +CSS_KEY(scrollbar-small, scrollbar_small) CSS_KEY(se-resize, se_resize) CSS_KEY(select-after, select_after) CSS_KEY(select-all, select_all) diff --git a/mozilla/layout/style/nsCSSProps.cpp b/mozilla/layout/style/nsCSSProps.cpp index 4098ab55c81..02505e09d4f 100644 --- a/mozilla/layout/style/nsCSSProps.cpp +++ b/mozilla/layout/style/nsCSSProps.cpp @@ -219,6 +219,7 @@ const PRInt32 nsCSSProps::kAppearanceKTable[] = { eCSSKeyword_spinner_upbutton, NS_THEME_SPINNER_UP_BUTTON, eCSSKeyword_spinner_downbutton, NS_THEME_SPINNER_DOWN_BUTTON, eCSSKeyword_scrollbar, NS_THEME_SCROLLBAR, + eCSSKeyword_scrollbar_small, NS_THEME_SCROLLBAR_SMALL, eCSSKeyword_scrollbarbutton_up, NS_THEME_SCROLLBAR_BUTTON_UP, eCSSKeyword_scrollbarbutton_down, NS_THEME_SCROLLBAR_BUTTON_DOWN, eCSSKeyword_scrollbarbutton_left, NS_THEME_SCROLLBAR_BUTTON_LEFT, diff --git a/mozilla/themes/classic/global/mac/nativescrollbars.css b/mozilla/themes/classic/global/mac/nativescrollbars.css index 1e584edd1a9..331e1cac1c9 100644 --- a/mozilla/themes/classic/global/mac/nativescrollbars.css +++ b/mozilla/themes/classic/global/mac/nativescrollbars.css @@ -52,6 +52,12 @@ scrollbar { cursor: default; } +html|select[size]:not([size="0"]):not([size="1"]) > scrollbar, +html|select[multiple] > scrollbar { + -moz-appearance: scrollbar-small; + min-width: 11px; +} + /* ::::: square at the corner of two scrollbars ::::: */ scrollcorner { diff --git a/mozilla/toolkit/themes/pinstripe/global/nativescrollbars.css b/mozilla/toolkit/themes/pinstripe/global/nativescrollbars.css index e677f719bd6..75ce09a545b 100644 --- a/mozilla/toolkit/themes/pinstripe/global/nativescrollbars.css +++ b/mozilla/toolkit/themes/pinstripe/global/nativescrollbars.css @@ -53,6 +53,12 @@ scrollbar { background-color: white; } +html|select[size]:not([size="0"]):not([size="1"]) > scrollbar, +html|select[multiple] > scrollbar { + -moz-appearance: scrollbar-small; + min-width: 11px; +} + /* ::::: square at the corner of two scrollbars ::::: */ scrollcorner { diff --git a/mozilla/widget/src/cocoa/nsNativeScrollbar.mm b/mozilla/widget/src/cocoa/nsNativeScrollbar.mm index d68b4c14852..6a669c0ab23 100644 --- a/mozilla/widget/src/cocoa/nsNativeScrollbar.mm +++ b/mozilla/widget/src/cocoa/nsNativeScrollbar.mm @@ -22,6 +22,7 @@ * Contributor(s): * Mark Mentovai * Stuart Morgan + * Josh Aas * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -551,6 +552,23 @@ nsNativeScrollbar::UpdateScroller() } +- (void)setFrame:(NSRect)frameRect +{ + // maybe make this a small scrollbar + SInt32 smallScrollbarWidth = 0; + ::GetThemeMetric(kThemeMetricSmallScrollBarWidth, &smallScrollbarWidth); + if ((SInt32)frameRect.size.width == smallScrollbarWidth || + (SInt32)frameRect.size.height == smallScrollbarWidth) { + [self setControlSize:NSSmallControlSize]; + } + else { + [self setControlSize:NSRegularControlSize]; + } + + [super setFrame:frameRect]; +} + + - (NSWindow*)nativeWindow { NSWindow* currWin = [self window]; diff --git a/mozilla/widget/src/cocoa/nsNativeThemeCocoa.mm b/mozilla/widget/src/cocoa/nsNativeThemeCocoa.mm index 62eeb8e08f8..b6800f0d5ff 100644 --- a/mozilla/widget/src/cocoa/nsNativeThemeCocoa.mm +++ b/mozilla/widget/src/cocoa/nsNativeThemeCocoa.mm @@ -808,6 +808,15 @@ nsNativeThemeCocoa::GetMinimumWidgetSize(nsIRenderingContext* aContext, break; } + case NS_THEME_SCROLLBAR_SMALL: + { + SInt32 scrollbarWidth = 0; + ::GetThemeMetric(kThemeMetricSmallScrollBarWidth, &scrollbarWidth); + aResult->SizeTo(scrollbarWidth, scrollbarWidth); + *aIsOverridable = PR_FALSE; + break; + } + case NS_THEME_SCROLLBAR: case NS_THEME_SCROLLBAR_BUTTON_UP: case NS_THEME_SCROLLBAR_BUTTON_DOWN: @@ -959,6 +968,7 @@ nsNativeThemeCocoa::ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* a case NS_THEME_SCALE_THUMB_VERTICAL: case NS_THEME_SCROLLBAR: + case NS_THEME_SCROLLBAR_SMALL: case NS_THEME_SCROLLBAR_BUTTON_UP: case NS_THEME_SCROLLBAR_BUTTON_DOWN: case NS_THEME_SCROLLBAR_BUTTON_LEFT: