Changeset 25641 in webkit
- Timestamp:
- Sep 19, 2007, 11:04:30 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 2 deleted
- 25 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r25636 r25641 1 2007-09-18 Adele Peterson <adele@apple.com> 2 3 Reviewed by Maciej. 4 5 Tests for <rdar://problem/5472062> -webkit-user-select: none makes selection difficult 6 and for <rdar://problem/5472056> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org) 7 8 * fast/css/computed-style-expected.txt: Updated for default -webkit-user-select value. 9 * fast/css/computed-style-without-renderer-expected.txt: ditto. 10 11 * editing/selection/5333725.html: Re-enabled. 12 * editing/selection/5333725.html-disabled: Removed. 13 14 * editing/selection/user-select-text-inside-user-select-ignore.html-disabled: Removed. Adjusted this test to be more specific and renamed it to textfield-inside-anchor. 15 * editing/selection/user-select-text-inside-user-select-ignore-expected.txt: Removed. 16 * fast/forms/textfield-inside-anchor-expected.txt: Added. 17 * fast/forms/textfield-inside-anchor.html: Added. 18 1 19 2007-09-19 Antti Koivisto <antti@apple.com> 2 20 -
trunk/LayoutTests/fast/css/computed-style-expected.txt
r25468 r25641 126 126 -webkit-user-drag: auto; 127 127 -webkit-user-modify: read-only; 128 -webkit-user-select: auto;128 -webkit-user-select: text; 129 129 -webkit-dashboard-region: null; 130 130 -webkit-border-bottom-left-radius: 0px; -
trunk/LayoutTests/fast/css/computed-style-without-renderer-expected.txt
r25468 r25641 125 125 -webkit-user-drag: auto 126 126 -webkit-user-modify: read-only 127 -webkit-user-select: auto127 -webkit-user-select: text 128 128 -webkit-dashboard-region: null 129 129 -webkit-border-bottom-left-radius: 0px -
trunk/WebCore/ChangeLog
r25638 r25641 1 2007-09-19 George Staikos <staikos@kde.org> 2 3 As discussed with Brady and Maciej, on platforms without pthreads, use 4 IconDatabaseNone for now and don't use pthreads. Fixes Qt Win32 build 5 for now. 6 7 * loader/icon/IconDatabase.h: 8 9 2007-09-19 Antti Koivisto <antti@apple.com> 1 2007-09-18 Adele Peterson <adele@apple.com> 10 2 11 3 Reviewed by Maciej. 12 4 13 Fix <rdar://problem/5488539> 14 (9A550) iPhone Banner on O2.UK site not clickable with Safari due to styled noscript element 15 16 Don't create renderer for noscript if scripts are enabled. 17 18 Test: fast/dom/noscript-style.html 19 20 * html/HTMLElement.cpp: 21 (WebCore::HTMLElement::mapToEntry): 22 (WebCore::HTMLElement::parseMappedAttribute): 23 (WebCore::HTMLElement::checkDTD): 24 (WebCore::HTMLElement::rendererIsNeeded): 25 (WebCore::HTMLElement::createRenderer): 26 * html/HTMLElement.h: 5 Fix for <rdar://problem/5472062> -webkit-user-select: none makes selection difficult 6 and for <rdar://problem/5472056> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org) 7 8 Tests: 9 10 This fix has a few steps: 11 1) Removes the ignore value for the -webkit-user-select property. We now decide when to prevent selection from starting by calling canStartSelection on the node. 12 2) Implements canStartSelection which returns false for all elements that used to have -webkit-user-select:ignore set, true for content editable nodes, 13 and walks up the tree to ask the parent before allowing selection to be started on any other nodes. 14 3) We used to disallow selection from starting within -webkit-user-select:none blocks, but now we only use canStartSelection for that. This will allow easy selections 15 in cases like iChat where there's a mix of selectable and non-selectable content. 16 4) Makes -webkit-user-select inherited. After removing the "ignore" value, -webkit-user-select would behave like it was inherited anyways since we already allowed the text value to override the none value. 17 18 19 * css/html4.css: Removed all usage of -webkit-user-select: ignore. This is now handled internally with canStartSelection(). 20 Now -webkit-user-select won't be unintentionally overridden by nodes that don't want to allow selection to be started, but do want to honor the -webkit-user-select to 21 determine whether or not selection is allowed at all. 22 23 * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll): 24 Don't try to determine whether selection is allowed inside the root node here. VisiblePosition and Selection creation will keep Selection endpoints out of -webkit-user-select:none regions. 25 26 * dom/Node.h: 27 * dom/Node.cpp: (WebCore::Node::canStartSelection): Added. Always allows selection to be started in a content editable node. If there's a parent, ask the parent if starting a selection is allowed. 28 If there's no parent, default to allowing selection. 29 * html/HTMLAnchorElement.h: 30 * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::canStartSelection): Added. If its not a link, then calls the base class. Disallows selection for non-editable links. 31 Allows selection for editable links. 32 This logic used to be done in CSSStyleSelector by changing the user-select property. 33 * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::canStartSelection): Added. Disallows selection from starting in buttons. 34 * html/HTMLImageElement.h: (WebCore::HTMLImageElement::canStartSelection): Added. Disallows selection from starting in images. 35 * html/HTMLInputElement.h: 36 * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::canStartSelection): Added. Disallows selection from anything that's not a text field. Text fields call up to the base class. 37 When they're editable, text controls will always be selectable because of the case for content editable content. Otherwise, they'll respect their parent element's decision about starting a selection. 38 * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::canStartSelection): Added. Disallows selection from starting in popup buttons. 39 40 * page/EventHandler.cpp: 41 (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect instead of the ambiguously named shouldSelect(). 42 (WebCore::EventHandler::handleMousePressEventTripleClick): ditto. 43 (WebCore::EventHandler::handleMousePressEventSingleClick): ditto. 44 (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect. 45 (WebCore::EventHandler::selectCursor): Paint an ibeam in any region that allows you to click to create a selection. 46 (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and calls canStartSelection instead of checking the user-select property. 47 (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to canMouseDownStartSelect because of 12823, even though it seems strange that we would fire the selectStart event here. 48 * page/EventHandler.h: 49 * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Calls canStartSelection instead of checking the user-select property to decide when to prevent selection creation. 50 * rendering/RenderObject.cpp: (WebCore::RenderObject::draggableNode): ditto. 51 * rendering/RenderObject.h: Removed helper methods that are no longer needed. 52 53 * rendering/RenderStyle.h: Made userSelect inherited. After removing the "ignore" value, -webkit-user-select would behave like it was inherited 54 anyways since we already allowed the text value to override the none value. 55 Removed the SELECT_AUTO and SELECT_IGNORE values since they're no longer used. 56 (WebCore::): 57 (WebCore::RenderStyle::userSelect): 58 (WebCore::RenderStyle::setUserSelect): 59 (WebCore::RenderStyle::initialUserSelect): 60 * rendering/RenderStyle.cpp: 61 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): 62 (WebCore::StyleRareNonInheritedData::operator==): 63 (WebCore::StyleRareInheritedData::StyleRareInheritedData): 64 (WebCore::StyleRareInheritedData::operator==): 65 (WebCore::RenderStyle::diff): 66 67 * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Remove case for SELECT_AUTO and SELECT_IGNORE 68 * css/CSSStyleSelector.cpp: 69 (WebCore::CSSStyleSelector::adjustRenderStyle): Remove adjustment for links. This is now handled in HTMLAnchorElement::canStartSelection. 70 (WebCore::CSSStyleSelector::applyProperty): Map CSS_VAL_AUTO to SELECT_TEXT. Remove CSS_VAL_IGNORE. 27 71 28 72 2007-09-18 Timothy Hatcher <timothy@apple.com> -
trunk/WebCore/css/CSSComputedStyleDeclaration.cpp
r25468 r25641 1582 1582 case CSS_PROP__WEBKIT_USER_SELECT: 1583 1583 switch (style->userSelect()) { 1584 case SELECT_AUTO:1585 return new CSSPrimitiveValue(CSS_VAL_AUTO);1586 1584 case SELECT_NONE: 1587 1585 return new CSSPrimitiveValue(CSS_VAL_NONE); 1588 1586 case SELECT_TEXT: 1589 1587 return new CSSPrimitiveValue(CSS_VAL_TEXT); 1590 case SELECT_IGNORE:1591 return new CSSPrimitiveValue(CSS_VAL_IGNORE);1592 1588 } 1593 1589 break; -
trunk/WebCore/css/CSSParser.cpp
r24793 r25641 1231 1231 break; 1232 1232 case CSS_PROP__WEBKIT_USER_SELECT: // auto | none | text 1233 if (id == CSS_VAL_AUTO || id == CSS_VAL_NONE || id == CSS_VAL_TEXT || id == CSS_VAL_IGNORE)1233 if (id == CSS_VAL_AUTO || id == CSS_VAL_NONE || id == CSS_VAL_TEXT) 1234 1234 valid_primitive = true; 1235 1235 break; -
trunk/WebCore/css/CSSStyleSelector.cpp
r25468 r25641 1131 1131 style->setOverflowY(OVISIBLE); 1132 1132 } 1133 1134 // Links should be user selectable when content editable1135 if (e && e->isLink() && ((e->document()->frame() && e->document()->frame()->isContentEditable()) || style->userModify() == READ_WRITE || style->userModify() == READ_WRITE_PLAINTEXT_ONLY))1136 style->setUserSelect(SELECT_AUTO);1137 1133 1138 1134 // Cull out any useless layers and also repeat patterns into additional layers. … … 4178 4174 switch (primitiveValue->getIdent()) { 4179 4175 case CSS_VAL_AUTO: 4180 style->setUserSelect(SELECT_ AUTO);4176 style->setUserSelect(SELECT_TEXT); 4181 4177 break; 4182 4178 case CSS_VAL_NONE: … … 4185 4181 case CSS_VAL_TEXT: 4186 4182 style->setUserSelect(SELECT_TEXT); 4187 break;4188 case CSS_VAL_IGNORE:4189 style->setUserSelect(SELECT_IGNORE);4190 4183 default: 4191 4184 return; -
trunk/WebCore/css/html4.css
r24324 r25641 385 385 input[type="radio"], input[type="checkbox"] { 386 386 margin: 3px 0.5ex; 387 -webkit-user-select: ignore;388 387 padding: initial; 389 388 background-color: initial; … … 411 410 padding: initial; 412 411 border: initial; 413 -webkit-user-select: ignore;414 412 margin: 2px; 415 413 } … … 417 415 input[type="range"]::-webkit-slider-thumb { 418 416 -webkit-appearance: sliderthumb-horizontal; 419 -webkit-user-select: ignore420 417 } 421 418 … … 430 427 input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled { 431 428 border-style: outset 432 }433 434 select, keygen, button, input[type="button"], input[type="image"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], input[type="file"]::-webkit-file-upload-button, img {435 -webkit-user-select: ignore436 429 } 437 430 … … 574 567 color: -webkit-link; 575 568 text-decoration: underline; 576 -webkit-user-select: ignore577 569 } 578 570 -
trunk/WebCore/dom/Node.cpp
r25345 r25641 1098 1098 { 1099 1099 return renderer() ? renderer()->nextOffset(current) : current + 1; 1100 } 1101 1102 bool Node::canStartSelection() const 1103 { 1104 if (isContentEditable()) 1105 return true; 1106 return parent() ? parent()->canStartSelection() : true; 1100 1107 } 1101 1108 -
trunk/WebCore/dom/Node.h
r25345 r25641 363 363 virtual void selectAll() { } 364 364 365 // Whether or not a selection can be started in this object 366 virtual bool canStartSelection() const; 367 365 368 #ifndef NDEBUG 366 369 virtual void dump(TextStream*, DeprecatedString indent = "") const; -
trunk/WebCore/editing/SelectionController.cpp
r25502 r25641 1174 1174 1175 1175 Node* root = isContentEditable() ? highestEditableRoot(m_sel.start()) : document->documentElement(); 1176 if (!root || !root->renderer() || !root->renderer()->canSelect())1176 if (!root) 1177 1177 return; 1178 1178 Selection newSelection(Selection::selectionFromContentsOfNode(root)); -
trunk/WebCore/html/HTMLAnchorElement.cpp
r24415 r25641 291 291 } 292 292 293 bool HTMLAnchorElement::canStartSelection() const 294 { 295 // FIXME: We probably want this same behavior in SVGAElement too 296 if (!isLink()) 297 return HTMLElement::canStartSelection(); 298 return isContentEditable(); 299 } 300 293 301 String HTMLAnchorElement::accessKey() const 294 302 { -
trunk/WebCore/html/HTMLAnchorElement.h
r21927 r25641 49 49 virtual void accessKeyAction(bool fullAction); 50 50 virtual bool isURLAttribute(Attribute*) const; 51 52 virtual bool canStartSelection() const; 51 53 52 54 String accessKey() const; -
trunk/WebCore/html/HTMLButtonElement.h
r21174 r25641 50 50 virtual void accessKeyAction(bool sendToAnyElement); 51 51 52 virtual bool canStartSelection() const { return false; } 53 52 54 String accessKey() const; 53 55 void setAccessKey(const String&); -
trunk/WebCore/html/HTMLImageElement.h
r20954 r25641 50 50 virtual void insertedIntoDocument(); 51 51 virtual void removedFromDocument(); 52 53 virtual bool canStartSelection() const { return false; } 52 54 53 55 int width(bool ignorePendingStylesheets = false) const; -
trunk/WebCore/html/HTMLInputElement.cpp
r25345 r25641 455 455 break; 456 456 } 457 } 458 459 bool HTMLInputElement::canStartSelection() const 460 { 461 if (!isTextField()) 462 return false; 463 return HTMLFormControlElementWithState::canStartSelection(); 457 464 } 458 465 -
trunk/WebCore/html/HTMLInputElement.h
r25345 r25641 99 99 virtual void restoreState(const String&); 100 100 101 virtual bool canStartSelection() const; 102 101 103 bool canHaveSelection() const; 102 104 int selectionStart() const; -
trunk/WebCore/html/HTMLSelectElement.h
r24363 r25641 55 55 virtual void dispatchFocusEvent(); 56 56 virtual void dispatchBlurEvent(); 57 58 virtual bool canStartSelection() const { return false; } 57 59 58 60 int selectedIndex() const; -
trunk/WebCore/page/EventHandler.cpp
r25468 r25641 153 153 Selection newSelection; 154 154 155 if (innerNode && innerNode->renderer() && m_mouseDownMayStartSelect && innerNode->renderer()->shouldSelect()) {155 if (innerNode && innerNode->renderer() && m_mouseDownMayStartSelect) { 156 156 VisiblePosition pos(innerNode->renderer()->positionForPoint(result.localPoint())); 157 157 if (pos.isNotNull()) { … … 194 194 195 195 Node* innerNode = event.targetNode(); 196 if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect 197 && innerNode->renderer()->shouldSelect())) 196 if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect)) 198 197 return false; 199 198 … … 221 220 222 221 Node* innerNode = event.targetNode(); 223 if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect 224 && innerNode->renderer()->shouldSelect())) 222 if (!(innerNode && innerNode->renderer() && m_mouseDownMayStartSelect)) 225 223 return false; 226 224 … … 409 407 if (!targetRenderer) 410 408 return; 411 412 if (! targetRenderer->shouldSelect())409 410 if (!canMouseDragExtendSelect(targetNode)) 413 411 return; 414 412 … … 728 726 if (m_frame->view() && layer && layer->isPointInResizeControl(m_frame->view()->windowToContents(event.event().pos()))) 729 727 inResizer = true; 730 if ((editable || (renderer && renderer->isText() && renderer->canSelect())) && !inResizer && !scrollbar)728 if ((editable || (renderer && renderer->isText() && node->canStartSelection())) && !inResizer && !scrollbar) 731 729 return iBeamCursor(); 732 730 return pointerCursor(); … … 1364 1362 } 1365 1363 1364 // Whether or not a mouse down can begin the creation of a selection. Fires the selectStart event. 1366 1365 bool EventHandler::canMouseDownStartSelect(Node* node) 1367 1366 { … … 1369 1368 return true; 1370 1369 1371 // Check to see if -webkit-user-select has been set to none1372 if (!node->renderer()->canSelect())1373 return false;1374 1375 1370 // Some controls and images can't start a select on a mouse down. 1376 for (RenderObject* curr = node->renderer(); curr; curr = curr->parent()) 1377 if (curr->style()->userSelect() == SELECT_IGNORE) 1378 return false; 1371 if (!node->canStartSelection()) 1372 return false; 1373 1374 for (RenderObject* curr = node->renderer(); curr; curr = curr->parent()) 1375 if (Node* node = curr->element()) 1376 return EventTargetNodeCast(node)->dispatchHTMLEvent(selectstartEvent, true, true); 1377 1378 return true; 1379 } 1380 1381 bool EventHandler::canMouseDragExtendSelect(Node* node) 1382 { 1383 if (!node || !node->renderer()) 1384 return true; 1385 1386 for (RenderObject* curr = node->renderer(); curr; curr = curr->parent()) 1387 if (Node* node = curr->element()) 1388 return EventTargetNodeCast(node)->dispatchHTMLEvent(selectstartEvent, true, true); 1379 1389 1380 1390 return true; -
trunk/WebCore/page/EventHandler.h
r25468 r25641 196 196 197 197 static bool canMouseDownStartSelect(Node*); 198 static bool canMouseDragExtendSelect(Node*); 198 199 199 200 void handleAutoscroll(RenderObject*); -
trunk/WebCore/page/FocusController.cpp
r25345 r25641 246 246 247 247 if (Node* mousePressNode = newFocusedFrame->eventHandler()->mousePressNode()) 248 if (mousePressNode->renderer() && mousePressNode->renderer()->style()->userSelect() == SELECT_IGNORE)248 if (mousePressNode->renderer() && !mousePressNode->canStartSelection()) 249 249 if (Node* root = s->rootEditableElement()) 250 250 if (Node* shadowAncestorNode = root->shadowAncestorNode()) -
trunk/WebCore/rendering/RenderObject.cpp
r25468 r25641 2007 2007 #endif // NDEBUG 2008 2008 2009 static Node* selectStartNode(const RenderObject* object)2010 {2011 Node* node = 0;2012 bool forcedOn = false;2013 2014 for (const RenderObject* curr = object; curr; curr = curr->parent()) {2015 if (curr->style()->userSelect() == SELECT_TEXT)2016 forcedOn = true;2017 if (!forcedOn && curr->style()->userSelect() == SELECT_NONE)2018 return 0;2019 2020 if (!node)2021 node = curr->element();2022 }2023 2024 // somewhere up the render tree there must be an element!2025 ASSERT(node);2026 2027 return node;2028 }2029 2030 bool RenderObject::canSelect() const2031 {2032 return selectStartNode(this) != 0;2033 }2034 2035 bool RenderObject::shouldSelect() const2036 {2037 if (Node* node = selectStartNode(this))2038 return EventTargetNodeCast(node)->dispatchHTMLEvent(selectstartEvent, true, true);2039 2040 return false;2041 }2042 2043 2009 Color RenderObject::selectionBackgroundColor() const 2044 2010 { … … 2089 2055 return curr->node(); 2090 2056 } 2091 if ( curr->shouldSelect())2057 if (elt->canStartSelection()) 2092 2058 // In this case we have a click in the unselected portion of text. If this text is 2093 2059 // selectable, we want to start the selection process instead of looking for a parent -
trunk/WebCore/rendering/RenderObject.h
r25468 r25641 756 756 virtual bool hasSelectedChildren() const { return false; } 757 757 758 // Whether or not a selection can be attempted on this object.759 bool canSelect() const;760 761 // Whether or not a selection can be attempted on this object. Should only be called right before actually beginning a selection,762 // since it fires the selectstart DOM event.763 bool shouldSelect() const;764 765 758 // Obtains the selection colors that should be used when painting a selection. 766 759 Color selectionBackgroundColor() const; -
trunk/WebCore/rendering/RenderStyle.cpp
r25468 r25641 427 427 , m_counterDirectives(0) 428 428 , userDrag(RenderStyle::initialUserDrag()) 429 , userSelect(RenderStyle::initialUserSelect())430 429 , textOverflow(RenderStyle::initialTextOverflow()) 431 430 , marginTopCollapse(MCOLLAPSE) … … 451 450 , m_counterDirectives(0) 452 451 , userDrag(o.userDrag) 453 , userSelect(o.userSelect)454 452 , textOverflow(o.textOverflow) 455 453 , marginTopCollapse(o.marginTopCollapse) … … 498 496 && m_counterDirectives == o.m_counterDirectives 499 497 && userDrag == o.userDrag 500 && userSelect == o.userSelect501 498 && textOverflow == o.textOverflow 502 499 && marginTopCollapse == o.marginTopCollapse … … 532 529 , textSizeAdjust(RenderStyle::initialTextSizeAdjust()) 533 530 , resize(RenderStyle::initialResize()) 531 , userSelect(RenderStyle::initialUserSelect()) 534 532 { 535 533 } … … 550 548 , textSizeAdjust(o.textSizeAdjust) 551 549 , resize(o.resize) 550 , userSelect(o.userSelect) 552 551 { 553 552 } … … 571 570 && nbspMode == o.nbspMode 572 571 && khtmlLineBreak == o.khtmlLineBreak 573 && textSizeAdjust == o.textSizeAdjust; 572 && textSizeAdjust == o.textSizeAdjust 573 && userSelect == o.userSelect; 574 574 } 575 575 … … 1061 1061 visual->textDecoration != other->visual->textDecoration || 1062 1062 rareInheritedData->userModify != other->rareInheritedData->userModify || 1063 rare NonInheritedData->userSelect != other->rareNonInheritedData->userSelect ||1063 rareInheritedData->userSelect != other->rareInheritedData->userSelect || 1064 1064 rareNonInheritedData->userDrag != other->rareNonInheritedData->userDrag || 1065 1065 rareNonInheritedData->m_borderFit != other->rareNonInheritedData->m_borderFit || -
trunk/WebCore/rendering/RenderStyle.h
r25468 r25641 714 714 715 715 enum EUserSelect { 716 SELECT_ AUTO, SELECT_NONE, SELECT_TEXT, SELECT_IGNORE716 SELECT_NONE, SELECT_TEXT 717 717 }; 718 718 … … 848 848 849 849 unsigned userDrag : 2; // EUserDrag 850 unsigned userSelect : 2; // EUserSelect851 850 bool textOverflow : 1; // Whether or not lines that spill out should be truncated with "..." 852 851 unsigned marginTopCollapse : 2; // EMarginCollapse … … 891 890 bool textSizeAdjust : 1; // An Apple extension. 892 891 unsigned resize : 2; // EResize 892 unsigned userSelect : 1; // EUserSelect 893 893 }; 894 894 … … 1462 1462 EUserModify userModify() const { return static_cast<EUserModify>(rareInheritedData->userModify); } 1463 1463 EUserDrag userDrag() const { return static_cast<EUserDrag>(rareNonInheritedData->userDrag); } 1464 EUserSelect userSelect() const { return static_cast<EUserSelect>(rare NonInheritedData->userSelect); }1464 EUserSelect userSelect() const { return static_cast<EUserSelect>(rareInheritedData->userSelect); } 1465 1465 bool textOverflow() const { return rareNonInheritedData->textOverflow; } 1466 1466 EMarginCollapse marginTopCollapse() const { return static_cast<EMarginCollapse>(rareNonInheritedData->marginTopCollapse); } … … 1704 1704 void setUserModify(EUserModify u) { SET_VAR(rareInheritedData, userModify, u); } 1705 1705 void setUserDrag(EUserDrag d) { SET_VAR(rareNonInheritedData, userDrag, d); } 1706 void setUserSelect(EUserSelect s) { SET_VAR(rare NonInheritedData, userSelect, s); }1706 void setUserSelect(EUserSelect s) { SET_VAR(rareInheritedData, userSelect, s); } 1707 1707 void setTextOverflow(bool b) { SET_VAR(rareNonInheritedData, textOverflow, b); } 1708 1708 void setMarginTopCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginTopCollapse, c); } … … 1852 1852 static EUserModify initialUserModify() { return READ_ONLY; } 1853 1853 static EUserDrag initialUserDrag() { return DRAG_AUTO; } 1854 static EUserSelect initialUserSelect() { return SELECT_ AUTO; }1854 static EUserSelect initialUserSelect() { return SELECT_TEXT; } 1855 1855 static bool initialTextOverflow() { return false; } 1856 1856 static EMarginCollapse initialMarginTopCollapse() { return MCOLLAPSE; }
Note:
See TracChangeset
for help on using the changeset viewer.