OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2008, 2009, 2010 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 return granularity == LineBoundary || granularity == ParagraphBoundary || gr
anularity == DocumentBoundary; | 579 return granularity == LineBoundary || granularity == ParagraphBoundary || gr
anularity == DocumentBoundary; |
580 } | 580 } |
581 | 581 |
582 bool SelectionEditor::modify(EAlteration alter, SelectionDirection direction, Te
xtGranularity granularity, EUserTriggered userTriggered) | 582 bool SelectionEditor::modify(EAlteration alter, SelectionDirection direction, Te
xtGranularity granularity, EUserTriggered userTriggered) |
583 { | 583 { |
584 if (userTriggered == UserTriggered) { | 584 if (userTriggered == UserTriggered) { |
585 OwnPtrWillBeRawPtr<FrameSelection> trialFrameSelection = FrameSelection:
:create(); | 585 OwnPtrWillBeRawPtr<FrameSelection> trialFrameSelection = FrameSelection:
:create(); |
586 trialFrameSelection->setSelection(m_selection); | 586 trialFrameSelection->setSelection(m_selection); |
587 trialFrameSelection->modify(alter, direction, granularity, NotUserTrigge
red); | 587 trialFrameSelection->modify(alter, direction, granularity, NotUserTrigge
red); |
588 | 588 |
589 if (trialFrameSelection->selection().isRange() && m_selection.isCaret()
&& !dispatchSelectStart()) | 589 if (trialFrameSelection->selection().isRange() && m_selection.isCaret()
&& dispatchSelectStart() != DispatchEventResult::NotCanceled) |
590 return false; | 590 return false; |
591 } | 591 } |
592 | 592 |
593 willBeModified(alter, direction); | 593 willBeModified(alter, direction); |
594 | 594 |
595 bool wasRange = m_selection.isRange(); | 595 bool wasRange = m_selection.isRange(); |
596 VisiblePosition originalStartPosition = m_selection.visibleStart(); | 596 VisiblePosition originalStartPosition = m_selection.visibleStart(); |
597 VisiblePosition position; | 597 VisiblePosition position; |
598 switch (direction) { | 598 switch (direction) { |
599 case DirectionRight: | 599 case DirectionRight: |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 return true; | 850 return true; |
851 } | 851 } |
852 | 852 |
853 PassRefPtrWillBeRawPtr<Range> SelectionEditor::firstRange() const | 853 PassRefPtrWillBeRawPtr<Range> SelectionEditor::firstRange() const |
854 { | 854 { |
855 if (m_logicalRange) | 855 if (m_logicalRange) |
856 return m_logicalRange->cloneRange(); | 856 return m_logicalRange->cloneRange(); |
857 return firstRangeOf(m_selection); | 857 return firstRangeOf(m_selection); |
858 } | 858 } |
859 | 859 |
860 bool SelectionEditor::dispatchSelectStart() | 860 DispatchEventResult SelectionEditor::dispatchSelectStart() |
861 { | 861 { |
862 Node* selectStartTarget = m_selection.extent().computeContainerNode(); | 862 Node* selectStartTarget = m_selection.extent().computeContainerNode(); |
863 if (!selectStartTarget) | 863 if (!selectStartTarget) |
864 return true; | 864 return DispatchEventResult::NotCanceled; |
865 | 865 |
866 return selectStartTarget->dispatchEvent(Event::createCancelableBubble(EventT
ypeNames::selectstart)); | 866 return selectStartTarget->dispatchEvent(Event::createCancelableBubble(EventT
ypeNames::selectstart)); |
867 } | 867 } |
868 | 868 |
869 void SelectionEditor::didChangeVisibleSelection() | 869 void SelectionEditor::didChangeVisibleSelection() |
870 { | 870 { |
871 ASSERT(m_observingVisibleSelection); | 871 ASSERT(m_observingVisibleSelection); |
872 // Invalidate the logical range when the underlying VisibleSelection has cha
nged. | 872 // Invalidate the logical range when the underlying VisibleSelection has cha
nged. |
873 if (m_logicalRange) { | 873 if (m_logicalRange) { |
874 m_logicalRange->dispose(); | 874 m_logicalRange->dispose(); |
(...skipping 27 matching lines...) Expand all Loading... |
902 DEFINE_TRACE(SelectionEditor) | 902 DEFINE_TRACE(SelectionEditor) |
903 { | 903 { |
904 visitor->trace(m_frameSelection); | 904 visitor->trace(m_frameSelection); |
905 visitor->trace(m_selection); | 905 visitor->trace(m_selection); |
906 visitor->trace(m_selectionInFlatTree); | 906 visitor->trace(m_selectionInFlatTree); |
907 visitor->trace(m_logicalRange); | 907 visitor->trace(m_logicalRange); |
908 VisibleSelectionChangeObserver::trace(visitor); | 908 VisibleSelectionChangeObserver::trace(visitor); |
909 } | 909 } |
910 | 910 |
911 } // namespace blink | 911 } // namespace blink |
OLD | NEW |