| OLD | NEW |
| 1 /** | 1 /** |
| 2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved. |
| 3 * (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 3 * (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
| 4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 PassRefPtr<ComputedStyle> LayoutTextControlSingleLine::createInnerEditorStyle(co
nst ComputedStyle& startStyle) const | 266 PassRefPtr<ComputedStyle> LayoutTextControlSingleLine::createInnerEditorStyle(co
nst ComputedStyle& startStyle) const |
| 267 { | 267 { |
| 268 RefPtr<ComputedStyle> textBlockStyle = ComputedStyle::create(); | 268 RefPtr<ComputedStyle> textBlockStyle = ComputedStyle::create(); |
| 269 textBlockStyle->inheritFrom(startStyle); | 269 textBlockStyle->inheritFrom(startStyle); |
| 270 adjustInnerEditorStyle(*textBlockStyle); | 270 adjustInnerEditorStyle(*textBlockStyle); |
| 271 | 271 |
| 272 textBlockStyle->setWhiteSpace(PRE); | 272 textBlockStyle->setWhiteSpace(PRE); |
| 273 textBlockStyle->setOverflowWrap(NormalOverflowWrap); | 273 textBlockStyle->setOverflowWrap(NormalOverflowWrap); |
| 274 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips
is : TextOverflowClip); | 274 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips
is : TextOverflowClip); |
| 275 | 275 |
| 276 int computedLineHeight = lineHeight(true, HorizontalLine, PositionOfInterior
LineBoxes); |
| 276 // Do not allow line-height to be smaller than our default. | 277 // Do not allow line-height to be smaller than our default. |
| 277 if (textBlockStyle->fontSize() >= lineHeight(true, HorizontalLine, PositionO
fInteriorLineBoxes) || !startStyle.logicalHeight().isIntrinsicOrAuto()) | 278 if (textBlockStyle->fontSize() >= computedLineHeight) |
| 279 textBlockStyle->setLineHeight(ComputedStyle::initialLineHeight()); |
| 280 |
| 281 // We'd like to remove line-height if it's unnecessary because |
| 282 // overflow:scroll clips editing text by line-height. |
| 283 Length logicalHeight = startStyle.logicalHeight(); |
| 284 // Here, we remove line-height if the INPUT fixed height is taller than the |
| 285 // line-height. It's not the precise condition because logicalHeight |
| 286 // includes border and padding if box-sizing:border-box, and there are cases |
| 287 // in which we don't want to remove line-height with percent or calculated |
| 288 // length. |
| 289 // TODO(tkent): This should be done during layout. |
| 290 if (logicalHeight.hasPercent() || (logicalHeight.isFixed() && logicalHeight.
getFloatValue() > computedLineHeight)) |
| 278 textBlockStyle->setLineHeight(ComputedStyle::initialLineHeight()); | 291 textBlockStyle->setLineHeight(ComputedStyle::initialLineHeight()); |
| 279 | 292 |
| 280 textBlockStyle->setDisplay(BLOCK); | 293 textBlockStyle->setDisplay(BLOCK); |
| 281 textBlockStyle->setUnique(); | 294 textBlockStyle->setUnique(); |
| 282 | 295 |
| 283 if (inputElement()->shouldRevealPassword()) | 296 if (inputElement()->shouldRevealPassword()) |
| 284 textBlockStyle->setTextSecurity(TSNONE); | 297 textBlockStyle->setTextSecurity(TSNONE); |
| 285 | 298 |
| 286 textBlockStyle->setOverflowX(OverflowScroll); | 299 textBlockStyle->setOverflowX(OverflowScroll); |
| 300 // overflow-y:visible doesn't work because overflow-x:scroll makes a layer. |
| 287 textBlockStyle->setOverflowY(OverflowScroll); | 301 textBlockStyle->setOverflowY(OverflowScroll); |
| 288 RefPtr<ComputedStyle> noScrollbarStyle = ComputedStyle::create(); | 302 RefPtr<ComputedStyle> noScrollbarStyle = ComputedStyle::create(); |
| 289 noScrollbarStyle->setStyleType(PseudoIdScrollbar); | 303 noScrollbarStyle->setStyleType(PseudoIdScrollbar); |
| 290 noScrollbarStyle->setDisplay(NONE); | 304 noScrollbarStyle->setDisplay(NONE); |
| 291 textBlockStyle->addCachedPseudoStyle(noScrollbarStyle); | 305 textBlockStyle->addCachedPseudoStyle(noScrollbarStyle); |
| 292 textBlockStyle->setHasPseudoStyle(PseudoIdScrollbar); | 306 textBlockStyle->setHasPseudoStyle(PseudoIdScrollbar); |
| 293 | 307 |
| 294 return textBlockStyle.release(); | 308 return textBlockStyle.release(); |
| 295 } | 309 } |
| 296 | 310 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 // inner-editor element overflows the INPUT box intentionally, however it | 376 // inner-editor element overflows the INPUT box intentionally, however it |
| 363 // shouldn't affect outside of the INPUT box. So we ignore child overflow. | 377 // shouldn't affect outside of the INPUT box. So we ignore child overflow. |
| 364 } | 378 } |
| 365 | 379 |
| 366 HTMLInputElement* LayoutTextControlSingleLine::inputElement() const | 380 HTMLInputElement* LayoutTextControlSingleLine::inputElement() const |
| 367 { | 381 { |
| 368 return toHTMLInputElement(node()); | 382 return toHTMLInputElement(node()); |
| 369 } | 383 } |
| 370 | 384 |
| 371 } // namespace blink | 385 } // namespace blink |
| OLD | NEW |