mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
Bug 1507905 - Add -webkit-appearance:textarea and make that the default for <textarea> for compatibility with other UAs. r=jwatt
This commit is contained in:
parent
8009877bd7
commit
91372ff9f3
@ -296,6 +296,7 @@ exports.CSS_PROPERTIES = {
|
||||
"tab-scroll-arrow-forward",
|
||||
"tabpanel",
|
||||
"tabpanels",
|
||||
"textarea",
|
||||
"textfield",
|
||||
"textfield-multiline",
|
||||
"toolbar",
|
||||
@ -1743,6 +1744,7 @@ exports.CSS_PROPERTIES = {
|
||||
"tab-scroll-arrow-forward",
|
||||
"tabpanel",
|
||||
"tabpanels",
|
||||
"textarea",
|
||||
"textfield",
|
||||
"textfield-multiline",
|
||||
"toolbar",
|
||||
|
@ -116,6 +116,7 @@ input::placeholder {
|
||||
}
|
||||
|
||||
textarea {
|
||||
-moz-appearance: textarea;
|
||||
margin-block-start: 1px;
|
||||
margin-block-end: 1px;
|
||||
border: 2px inset ThreeDLightShadow;
|
||||
@ -133,7 +134,6 @@ textarea {
|
||||
vertical-align: text-bottom;
|
||||
cursor: text;
|
||||
resize: both;
|
||||
-moz-appearance: textfield-multiline;
|
||||
text-indent: 0;
|
||||
-moz-user-select: text;
|
||||
text-shadow: none;
|
||||
|
@ -1155,10 +1155,11 @@ pub enum Appearance {
|
||||
TabScrollArrowBack,
|
||||
#[parse(condition = "in_ua_or_chrome_sheet")]
|
||||
TabScrollArrowForward,
|
||||
/// A textfield or text area.
|
||||
/// A multi-line text field, e.g. HTML <textarea>.
|
||||
#[parse(aliases = "textfield-multiline")]
|
||||
Textarea,
|
||||
/// A single-line text field, e.g. HTML <input type=text>.
|
||||
Textfield,
|
||||
/// A multiline text field.
|
||||
TextfieldMultiline,
|
||||
/// A toolbar in an application window.
|
||||
#[parse(condition = "in_ua_or_chrome_sheet")]
|
||||
Toolbar,
|
||||
|
@ -3461,7 +3461,7 @@ nsNativeThemeCocoa::ComputeWidgetInfo(nsIFrame* aFrame,
|
||||
return Some(WidgetInfo::ScrollCorner(
|
||||
ComputeScrollbarParams(aFrame, false)));
|
||||
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
return Some(WidgetInfo::MultilineTextField(
|
||||
eventState.HasState(NS_EVENT_STATE_FOCUS)));
|
||||
|
||||
@ -3913,7 +3913,7 @@ nsNativeThemeCocoa::CreateWebRenderCommandsForWidget(mozilla::wr::DisplayListBui
|
||||
return false;
|
||||
}
|
||||
|
||||
case StyleAppearance::TextfieldMultiline: {
|
||||
case StyleAppearance::Textarea: {
|
||||
if (eventState.HasState(NS_EVENT_STATE_FOCUS)) {
|
||||
// We can't draw the focus ring using webrender, so fall back to regular
|
||||
// drawing if we're focused.
|
||||
@ -4069,7 +4069,7 @@ nsNativeThemeCocoa::GetWidgetBorder(nsDeviceContext* aContext,
|
||||
break;
|
||||
}
|
||||
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
result.SizeTo(1, 1, 1, 1);
|
||||
break;
|
||||
|
||||
@ -4171,7 +4171,7 @@ nsNativeThemeCocoa::GetWidgetOverflow(nsDeviceContext* aContext,
|
||||
case StyleAppearance::Toolbarbutton:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Searchfield:
|
||||
case StyleAppearance::Listbox:
|
||||
// NOTE: if you change Menulist and MenulistButton to behave differently,
|
||||
@ -4322,7 +4322,7 @@ nsNativeThemeCocoa::GetMinimumWidgetSize(nsPresContext* aPresContext,
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Searchfield:
|
||||
{
|
||||
// at minimum, we should be tall enough for 9pt text.
|
||||
@ -4659,7 +4659,7 @@ nsNativeThemeCocoa::ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* a
|
||||
case StyleAppearance::Statusbar:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Searchfield:
|
||||
case StyleAppearance::Toolbox:
|
||||
//case StyleAppearance::Toolbarbutton:
|
||||
@ -4820,7 +4820,7 @@ nsNativeThemeCocoa::WidgetAppearanceDependsOnWindowFocus(StyleAppearance aAppear
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::Treeview:
|
||||
case StyleAppearance::Treeline:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Listbox:
|
||||
case StyleAppearance::Resizer:
|
||||
return false;
|
||||
|
@ -340,7 +340,7 @@ nsNativeThemeGTK::GetGtkWidgetAndState(StyleAppearance aAppearance,
|
||||
// to see whether to draw in the focused state.
|
||||
if (aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline ||
|
||||
aAppearance == StyleAppearance::Textarea ||
|
||||
aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::SpinnerTextfield ||
|
||||
aAppearance == StyleAppearance::RadioContainer ||
|
||||
@ -602,7 +602,7 @@ nsNativeThemeGTK::GetGtkWidgetAndState(StyleAppearance aAppearance,
|
||||
case StyleAppearance::Textfield:
|
||||
aGtkWidgetType = MOZ_GTK_ENTRY;
|
||||
break;
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
aGtkWidgetType = MOZ_GTK_TEXT_VIEW;
|
||||
#else
|
||||
@ -1978,7 +1978,7 @@ nsNativeThemeGTK::ThemeSupportsWidget(nsPresContext* aPresContext,
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Range:
|
||||
case StyleAppearance::RangeThumb:
|
||||
case StyleAppearance::ScaleHorizontal:
|
||||
|
@ -63,7 +63,7 @@ HeadlessThemeGTK::GetWidgetBorder(nsDeviceContext* aContext, nsIFrame* aFrame,
|
||||
case StyleAppearance::SpinnerUpbutton:
|
||||
case StyleAppearance::SpinnerDownbutton:
|
||||
case StyleAppearance::SpinnerTextfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Menupopup:
|
||||
case StyleAppearance::MozGtkInfoBar:
|
||||
result.top = 1;
|
||||
@ -402,7 +402,7 @@ HeadlessThemeGTK::ThemeSupportsWidget(nsPresContext* aPresContext,
|
||||
case StyleAppearance::ScrollbarthumbHorizontal:
|
||||
case StyleAppearance::ScrollbarthumbVertical:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Menulist:
|
||||
case StyleAppearance::MenulistText:
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
|
@ -108,7 +108,7 @@ nsNativeTheme::GetContentState(nsIFrame* aFrame, StyleAppearance aAppearance)
|
||||
if (aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline ||
|
||||
aAppearance == StyleAppearance::Textarea ||
|
||||
aAppearance == StyleAppearance::Searchfield ||
|
||||
aAppearance == StyleAppearance::Listbox) {
|
||||
return flags;
|
||||
@ -348,7 +348,7 @@ nsNativeTheme::IsWidgetStyled(nsPresContext* aPresContext, nsIFrame* aFrame,
|
||||
aAppearance == StyleAppearance::Button ||
|
||||
aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline ||
|
||||
aAppearance == StyleAppearance::Textarea ||
|
||||
aAppearance == StyleAppearance::Listbox ||
|
||||
aAppearance == StyleAppearance::Menulist ||
|
||||
(aAppearance == StyleAppearance::MenulistButton &&
|
||||
|
@ -743,7 +743,7 @@ mozilla::Maybe<nsUXThemeClass> nsNativeThemeWin::GetThemeClass(StyleAppearance a
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::FocusOutline:
|
||||
return Some(eUXEdit);
|
||||
case StyleAppearance::Tooltip:
|
||||
@ -967,7 +967,7 @@ nsNativeThemeWin::GetThemePartAndState(nsIFrame* aFrame,
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline: {
|
||||
case StyleAppearance::Textarea: {
|
||||
EventStates eventState = GetContentState(aFrame, aAppearance);
|
||||
|
||||
/* Note: the NOSCROLL type has a rounded corner in each corner. The more
|
||||
@ -1886,7 +1886,7 @@ RENDER_AGAIN:
|
||||
else if (aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline) {
|
||||
aAppearance == StyleAppearance::Textarea) {
|
||||
if (aAppearance == StyleAppearance::MenulistTextfield &&
|
||||
state != TFS_EDITBORDER_FOCUSED) {
|
||||
// We want 'menulist-textfield' to behave like 'textfield', except we
|
||||
@ -2099,7 +2099,7 @@ nsNativeThemeWin::GetWidgetBorder(nsDeviceContext* aContext,
|
||||
if (aFrame && (aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline)) {
|
||||
aAppearance == StyleAppearance::Textarea)) {
|
||||
nsIContent* content = aFrame->GetContent();
|
||||
if (content && content->IsHTMLElement()) {
|
||||
// We need to pad textfields by 1 pixel, since the caret will draw
|
||||
@ -2200,7 +2200,7 @@ nsNativeThemeWin::GetWidgetPadding(nsDeviceContext* aContext,
|
||||
if (aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline ||
|
||||
aAppearance == StyleAppearance::Textarea ||
|
||||
aAppearance == StyleAppearance::Menulist)
|
||||
{
|
||||
// If we have author-specified padding for these elements, don't do the
|
||||
@ -2218,7 +2218,7 @@ nsNativeThemeWin::GetWidgetPadding(nsDeviceContext* aContext,
|
||||
if (aAppearance == StyleAppearance::MenulistTextfield ||
|
||||
aAppearance == StyleAppearance::NumberInput ||
|
||||
aAppearance == StyleAppearance::Textfield ||
|
||||
aAppearance == StyleAppearance::TextfieldMultiline) {
|
||||
aAppearance == StyleAppearance::Textarea) {
|
||||
aResult->top = aResult->bottom = 2;
|
||||
aResult->left = aResult->right = 2;
|
||||
ScaleForFrameDPI(aResult, aFrame);
|
||||
@ -2866,7 +2866,7 @@ nsNativeThemeWin::ClassicThemeSupportsWidget(nsIFrame* aFrame,
|
||||
case StyleAppearance::Button:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Checkbox:
|
||||
case StyleAppearance::Radio:
|
||||
case StyleAppearance::Range:
|
||||
@ -2959,7 +2959,7 @@ nsNativeThemeWin::ClassicGetWidgetBorder(nsDeviceContext* aContext,
|
||||
case StyleAppearance::Tab:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::FocusOutline:
|
||||
result.top = result.left = result.bottom = result.right = 2;
|
||||
break;
|
||||
@ -3127,7 +3127,7 @@ nsNativeThemeWin::ClassicGetMinimumWidgetSize(nsIFrame* aFrame,
|
||||
case StyleAppearance::Treeview:
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::Statusbar:
|
||||
case StyleAppearance::Statusbarpanel:
|
||||
@ -3387,7 +3387,7 @@ nsresult nsNativeThemeWin::ClassicGetThemePartAndState(nsIFrame* aFrame,
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::FocusOutline:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Menulist:
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
case StyleAppearance::Range:
|
||||
@ -3819,7 +3819,7 @@ RENDER_AGAIN:
|
||||
// Draw controls with 2px 3D inset border
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
case StyleAppearance::Listbox:
|
||||
case StyleAppearance::Menulist:
|
||||
case StyleAppearance::MenulistTextfield: {
|
||||
@ -4187,7 +4187,7 @@ nsNativeThemeWin::GetWidgetNativeDrawingFlags(StyleAppearance aAppearance)
|
||||
case StyleAppearance::NumberInput:
|
||||
case StyleAppearance::FocusOutline:
|
||||
case StyleAppearance::Textfield:
|
||||
case StyleAppearance::TextfieldMultiline:
|
||||
case StyleAppearance::Textarea:
|
||||
|
||||
case StyleAppearance::Menulist:
|
||||
case StyleAppearance::MenulistTextfield:
|
||||
|
Loading…
Reference in New Issue
Block a user