OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
3 * reserved. | 3 * reserved. |
4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
6 * Copyright (C) 2015 Google Inc. All rights reserved. | 6 * Copyright (C) 2015 Google Inc. All rights reserved. |
7 * | 7 * |
8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
10 * are met: | 10 * are met: |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 | 718 |
719 if (!selection().isAvailable()) | 719 if (!selection().isAvailable()) |
720 return false; | 720 return false; |
721 | 721 |
722 if (!m_mouseDownAllowsMultiClick) | 722 if (!m_mouseDownAllowsMultiClick) |
723 return handleMousePressEventSingleClick(event); | 723 return handleMousePressEventSingleClick(event); |
724 | 724 |
725 if (event.event().button != WebPointerProperties::Button::Left) | 725 if (event.event().button != WebPointerProperties::Button::Left) |
726 return false; | 726 return false; |
727 | 727 |
728 if (selection().isRange()) { | 728 if (selection().computeVisibleSelectionInDOMTreeDeprecated().isRange()) { |
729 // A double-click when range is already selected | 729 // A double-click when range is already selected |
730 // should not change the selection. So, do not call | 730 // should not change the selection. So, do not call |
731 // selectClosestWordFromMouseEvent, but do set | 731 // selectClosestWordFromMouseEvent, but do set |
732 // m_beganSelectingText to prevent handleMouseReleaseEvent | 732 // m_beganSelectingText to prevent handleMouseReleaseEvent |
733 // from setting caret selection. | 733 // from setting caret selection. |
734 m_selectionState = SelectionState::ExtendedSelection; | 734 m_selectionState = SelectionState::ExtendedSelection; |
735 } else { | 735 } else { |
736 selectClosestWordFromMouseEvent(event); | 736 selectClosestWordFromMouseEvent(event); |
737 } | 737 } |
738 return true; | 738 return true; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 | 846 |
847 bool handled = false; | 847 bool handled = false; |
848 m_mouseDownMayStartSelect = false; | 848 m_mouseDownMayStartSelect = false; |
849 // Clear the selection if the mouse didn't move after the last mouse | 849 // Clear the selection if the mouse didn't move after the last mouse |
850 // press and it's not a context menu click. We do this so when clicking | 850 // press and it's not a context menu click. We do this so when clicking |
851 // on the selection, the selection goes away. However, if we are | 851 // on the selection, the selection goes away. However, if we are |
852 // editing, place the caret. | 852 // editing, place the caret. |
853 if (m_mouseDownWasSingleClickInSelection && | 853 if (m_mouseDownWasSingleClickInSelection && |
854 m_selectionState != SelectionState::ExtendedSelection && | 854 m_selectionState != SelectionState::ExtendedSelection && |
855 dragStartPos == flooredIntPoint(event.event().positionInRootFrame()) && | 855 dragStartPos == flooredIntPoint(event.event().positionInRootFrame()) && |
856 selection().isRange() && | 856 selection().computeVisibleSelectionInDOMTreeDeprecated().isRange() && |
857 event.event().button != WebPointerProperties::Button::Right) { | 857 event.event().button != WebPointerProperties::Button::Right) { |
858 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets | 858 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets |
859 // needs to be audited. See http://crbug.com/590369 for more details. | 859 // needs to be audited. See http://crbug.com/590369 for more details. |
860 m_frame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); | 860 m_frame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
861 | 861 |
862 SelectionInFlatTree::Builder builder; | 862 SelectionInFlatTree::Builder builder; |
863 Node* node = event.innerNode(); | 863 Node* node = event.innerNode(); |
864 if (node && node->layoutObject() && hasEditableStyle(*node)) { | 864 if (node && node->layoutObject() && hasEditableStyle(*node)) { |
865 const VisiblePositionInFlatTree pos = | 865 const VisiblePositionInFlatTree pos = |
866 visiblePositionOfHitTestResult(event.hitTestResult()); | 866 visiblePositionOfHitTestResult(event.hitTestResult()); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 | 1079 |
1080 bool isExtendingSelection(const MouseEventWithHitTestResults& event) { | 1080 bool isExtendingSelection(const MouseEventWithHitTestResults& event) { |
1081 bool isMouseDownOnLinkOrImage = | 1081 bool isMouseDownOnLinkOrImage = |
1082 event.isOverLink() || event.hitTestResult().image(); | 1082 event.isOverLink() || event.hitTestResult().image(); |
1083 return (event.event().modifiers() & WebInputEvent::Modifiers::ShiftKey) != | 1083 return (event.event().modifiers() & WebInputEvent::Modifiers::ShiftKey) != |
1084 0 && | 1084 0 && |
1085 !isMouseDownOnLinkOrImage; | 1085 !isMouseDownOnLinkOrImage; |
1086 } | 1086 } |
1087 | 1087 |
1088 } // namespace blink | 1088 } // namespace blink |
OLD | NEW |