Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/WebKit/Source/core/editing/SelectionController.cpp

Issue 2171493003: [Editing][DOM][CodeHealth] Make Node::hasEditableStyle global functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies)
5 * Copyright (C) 2015 Google Inc. All rights reserved. 5 * Copyright (C) 2015 Google Inc. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 const VisiblePositionInFlatTree& pos = visiblePositionOfHitTestResult(adjust edHitTestResult); 316 const VisiblePositionInFlatTree& pos = visiblePositionOfHitTestResult(adjust edHitTestResult);
317 if (pos.isNotNull()) { 317 if (pos.isNotNull()) {
318 newSelection = VisibleSelectionInFlatTree(pos); 318 newSelection = VisibleSelectionInFlatTree(pos);
319 newSelection.expandUsingGranularity(WordGranularity); 319 newSelection.expandUsingGranularity(WordGranularity);
320 } 320 }
321 321
322 if (selectInputEventType == SelectInputEventType::Touch) { 322 if (selectInputEventType == SelectInputEventType::Touch) {
323 // If node doesn't have text except space, tab or line break, do not 323 // If node doesn't have text except space, tab or line break, do not
324 // select that 'empty' area. 324 // select that 'empty' area.
325 EphemeralRangeInFlatTree range(newSelection.start(), newSelection.end()) ; 325 EphemeralRangeInFlatTree range(newSelection.start(), newSelection.end()) ;
326 const String& str = plainText(range, innerNode->hasEditableStyle() ? Tex tIteratorEmitsObjectReplacementCharacter : TextIteratorDefaultBehavior); 326 const String& str = plainText(range, hasEditableStyle(*innerNode) ? Text IteratorEmitsObjectReplacementCharacter : TextIteratorDefaultBehavior);
327 if (str.isEmpty() || str.simplifyWhiteSpace().containsOnlyWhitespace()) 327 if (str.isEmpty() || str.simplifyWhiteSpace().containsOnlyWhitespace())
328 return; 328 return;
329 329
330 if (newSelection.rootEditableElement() && pos.deepEquivalent() == Visibl ePositionInFlatTree::lastPositionInNode(newSelection.rootEditableElement()).deep Equivalent()) 330 if (newSelection.rootEditableElement() && pos.deepEquivalent() == Visibl ePositionInFlatTree::lastPositionInNode(newSelection.rootEditableElement()).deep Equivalent())
331 return; 331 return;
332 } 332 }
333 333
334 if (appendTrailingWhitespace == AppendTrailingWhitespace::ShouldAppend && ne wSelection.isRange()) 334 if (appendTrailingWhitespace == AppendTrailingWhitespace::ShouldAppend && ne wSelection.isRange())
335 newSelection.appendTrailingWhitespace(); 335 newSelection.appendTrailingWhitespace();
336 336
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 // press and it's not a context menu click. We do this so when clicking 515 // press and it's not a context menu click. We do this so when clicking
516 // on the selection, the selection goes away. However, if we are 516 // on the selection, the selection goes away. However, if we are
517 // editing, place the caret. 517 // editing, place the caret.
518 if (m_mouseDownWasSingleClickInSelection && m_selectionState != SelectionSta te::ExtendedSelection 518 if (m_mouseDownWasSingleClickInSelection && m_selectionState != SelectionSta te::ExtendedSelection
519 && dragStartPos == event.event().position() 519 && dragStartPos == event.event().position()
520 && selection().isRange() 520 && selection().isRange()
521 && event.event().button() != RightButton) { 521 && event.event().button() != RightButton) {
522 VisibleSelectionInFlatTree newSelection; 522 VisibleSelectionInFlatTree newSelection;
523 Node* node = event.innerNode(); 523 Node* node = event.innerNode();
524 bool caretBrowsing = m_frame->settings() && m_frame->settings()->caretBr owsingEnabled(); 524 bool caretBrowsing = m_frame->settings() && m_frame->settings()->caretBr owsingEnabled();
525 if (node && node->layoutObject() && (caretBrowsing || node->hasEditableS tyle())) { 525 if (node && node->layoutObject() && (caretBrowsing || hasEditableStyle(* node))) {
526 const VisiblePositionInFlatTree pos = visiblePositionOfHitTestResult (event.hitTestResult()); 526 const VisiblePositionInFlatTree pos = visiblePositionOfHitTestResult (event.hitTestResult());
527 newSelection = VisibleSelectionInFlatTree(pos); 527 newSelection = VisibleSelectionInFlatTree(pos);
528 } 528 }
529 529
530 setSelectionIfNeeded(selection(), newSelection); 530 setSelectionIfNeeded(selection(), newSelection);
531 531
532 handled = true; 532 handled = true;
533 } 533 }
534 534
535 selection().notifyLayoutObjectOfSelectionChange(UserTriggered); 535 selection().notifyLayoutObjectOfSelectionChange(UserTriggered);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 return event.event().altKey() && event.isOverLink(); 675 return event.event().altKey() && event.isOverLink();
676 } 676 }
677 677
678 bool isExtendingSelection(const MouseEventWithHitTestResults& event) 678 bool isExtendingSelection(const MouseEventWithHitTestResults& event)
679 { 679 {
680 bool isMouseDownOnLinkOrImage = event.isOverLink() || event.hitTestResult(). image(); 680 bool isMouseDownOnLinkOrImage = event.isOverLink() || event.hitTestResult(). image();
681 return event.event().shiftKey() && !isMouseDownOnLinkOrImage; 681 return event.event().shiftKey() && !isMouseDownOnLinkOrImage;
682 } 682 }
683 683
684 } // namespace blink 684 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698