author | Mats Palmgren <matspal@gmail.com> |
Thu, 02 Oct 2014 13:05:15 +0000 (2014-10-02) | |
changeset 208387 | 161e4dbfff7d2d4e9e2fb593433fc3f5f5f23eff |
parent 208386 | e845072de8df4b3e0341f4a1b1537d769bba5421 |
child 208388 | e2d1b98b34e6f367ed6a8f14db2aca191c480f7e |
push id | 27582 |
push user | ryanvm@gmail.com |
push date | Thu, 02 Oct 2014 16:20:06 +0000 (2014-10-02) |
treeherder | mozilla-central@5d6ec4dddf14 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 649849 |
milestone | 35.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/forms/nsComboboxControlFrame.cpp +++ b/layout/forms/nsComboboxControlFrame.cpp @@ -26,16 +26,17 @@ #include "nsListControlFrame.h" #include "nsAutoPtr.h" #include "nsStyleSet.h" #include "nsNodeInfoManager.h" #include "nsContentCreatorFunctions.h" #include "nsLayoutUtils.h" #include "nsDisplayList.h" #include "nsITheme.h" +#include "nsThemeConstants.h" #include "nsRenderingContext.h" #include "mozilla/Likely.h" #include <algorithm> #include "nsTextNode.h" #include "mozilla/AsyncEventDispatcher.h" #include "mozilla/EventStates.h" #include "mozilla/LookAndFeel.h" #include "mozilla/MouseEvents.h" @@ -729,18 +730,21 @@ nsComboboxControlFrame::GetIntrinsicISiz dropdownContentWidth = NSCoordSaturatingSubtract(dropdownContentWidth, scrollbarWidth, nscoord_MAX); displayWidth = std::max(dropdownContentWidth, displayWidth); } // add room for the dropmarker button if there is one - if (!IsThemed() || presContext->GetTheme()->ThemeNeedsComboboxDropmarker()) + if ((!IsThemed() || + presContext->GetTheme()->ThemeNeedsComboboxDropmarker()) && + StyleDisplay()->mAppearance != NS_THEME_NONE) { displayWidth += scrollbarWidth; + } return displayWidth; } nscoord nsComboboxControlFrame::GetMinISize(nsRenderingContext *aRenderingContext) { @@ -808,17 +812,18 @@ nsComboboxControlFrame::Reflow(nsPresCon // it's released in its ReflowFinished / ReflowCallbackCanceled. unused << resize.forget(); } // Get the width of the vertical scrollbar. That will be the width of the // dropdown button. nscoord buttonWidth; const nsStyleDisplay *disp = StyleDisplay(); - if (IsThemed(disp) && !aPresContext->GetTheme()->ThemeNeedsComboboxDropmarker()) { + if ((IsThemed(disp) && !aPresContext->GetTheme()->ThemeNeedsComboboxDropmarker()) || + StyleDisplay()->mAppearance == NS_THEME_NONE) { buttonWidth = 0; } else { nsIScrollableFrame* scrollable = do_QueryFrame(mListControlFrame); NS_ASSERTION(scrollable, "List must be a scrollable frame"); buttonWidth = scrollable->GetNondisappearingScrollbarWidth( PresContext(), aReflowState.rendContext); if (buttonWidth > aReflowState.ComputedWidth()) {
--- a/layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html +++ b/layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html @@ -1,17 +1,21 @@ <!DOCTYPE HTML> +<div style="position:relative"> +<!-- mask the dropdown button --> +<div style="position:absolute; width:50px; left:7px; top:0; bottom:0; background:black;"></div> <!-- these should make the select non-native --> -<select size="1" style="-moz-appearance: none; border-width: 0"></select> -<select size="1" style="-moz-appearance: none; border-width: 1px"></select> -<select size="1" style="-moz-appearance: none; border-width: 2px"></select> -<select size="1" style="-moz-appearance: none; border-width: 3px"></select> -<select size="1" style="-moz-appearance: none; border-width: 4px"></select> -<select size="1" style="-moz-appearance: none; border-width: 5px"></select> -<select size="1" style="-moz-appearance: none; border-width: 6px"></select> -<select size="1" style="-moz-appearance: none; border-style: dotted"></select> -<select size="1" style="-moz-appearance: none; border-color: green"></select> -<select size="1" style="-moz-appearance: none; background-color: transparent"></select> -<select size="1" style="-moz-appearance: none; background-color: white"></select> +<select size="1" style="-moz-appearance: none; border-width: 0"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 1px"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 2px"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 3px"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 4px"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 5px"></select><br> +<select size="1" style="-moz-appearance: none; border-width: 6px"></select><br> +<select size="1" style="-moz-appearance: none; border-style: dotted"></select><br> +<select size="1" style="-moz-appearance: none; border-color: green"></select><br> +<select size="1" style="-moz-appearance: none; background-color: transparent"></select><br> +<select size="1" style="-moz-appearance: none; background-color: white"></select><br> +</div> <!-- these should let it stay native --> <select size="1"></select> <select size="1"></select>
--- a/layout/reftests/native-theme/combobox-nonnative-when-styled.html +++ b/layout/reftests/native-theme/combobox-nonnative-when-styled.html @@ -1,17 +1,21 @@ <!DOCTYPE HTML> +<div style="position:relative"> +<!-- mask the dropdown button --> +<div style="position:absolute; width:50px; left:7px; top:0; bottom:0; background:black;"></div> <!-- these should make the select non-native --> -<select size="1" style="border-width: 0"></select> -<select size="1" style="border-width: 1px"></select> -<select size="1" style="border-width: 2px"></select> -<select size="1" style="border-width: 3px"></select> -<select size="1" style="border-width: 4px"></select> -<select size="1" style="border-width: 5px"></select> -<select size="1" style="border-width: 6px"></select> -<select size="1" style="border-style: dotted"></select> -<select size="1" style="border-color: green"></select> -<select size="1" style="background-color: transparent"></select> -<select size="1" style="background-color: white"></select> +<select size="1" style="border-width: 0"></select><br> +<select size="1" style="border-width: 1px"></select><br> +<select size="1" style="border-width: 2px"></select><br> +<select size="1" style="border-width: 3px"></select><br> +<select size="1" style="border-width: 4px"></select><br> +<select size="1" style="border-width: 5px"></select><br> +<select size="1" style="border-width: 6px"></select><br> +<select size="1" style="border-style: dotted"></select><br> +<select size="1" style="border-color: green"></select><br> +<select size="1" style="background-color: transparent"></select><br> +<select size="1" style="background-color: white"></select><br> +</div> <!-- these should let it stay native --> <select size="1" style="color: black"></select> <select size="1" style="font-weight: normal"></select>
--- a/layout/reftests/text-overflow/combobox-zoom-ref.html +++ b/layout/reftests/text-overflow/combobox-zoom-ref.html @@ -14,21 +14,21 @@ html,body { color:black; background-color:white; padding:0; margin:0; } * { font-family:DejaVuSansMono!important; font-size:16px!important; } select { width: 200px; - padding-right: 7px; + padding-right: 8px; -moz-appearance: none; } </style> </head> <body> <select></select><br> -<select><option>long string long </option></select> +<select><option>long string long s</option></select> </body> </html>
--- a/layout/reftests/text-overflow/combobox-zoom.html +++ b/layout/reftests/text-overflow/combobox-zoom.html @@ -14,17 +14,17 @@ html,body { color:black; background-color:white; padding:0; margin:0; } * { font-family:DejaVuSansMono!important; font-size:16px!important; } select { width: 200px; - padding-right: 7px; + padding-right: 8px; text-overflow: " "; -moz-appearance: none; } </style> </head> <body> <select></select><br>