| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 Editor::RevealSelectionScope::RevealSelectionScope(Editor* editor) | 130 Editor::RevealSelectionScope::RevealSelectionScope(Editor* editor) |
| 131 : m_editor(editor) | 131 : m_editor(editor) |
| 132 { | 132 { |
| 133 ++m_editor->m_preventRevealSelection; | 133 ++m_editor->m_preventRevealSelection; |
| 134 } | 134 } |
| 135 | 135 |
| 136 Editor::RevealSelectionScope::~RevealSelectionScope() | 136 Editor::RevealSelectionScope::~RevealSelectionScope() |
| 137 { | 137 { |
| 138 DCHECK(m_editor->m_preventRevealSelection); | 138 DCHECK(m_editor->m_preventRevealSelection); |
| 139 --m_editor->m_preventRevealSelection; | 139 --m_editor->m_preventRevealSelection; |
| 140 if (!m_editor->m_preventRevealSelection) | 140 if (!m_editor->m_preventRevealSelection) { |
| 141 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesh
eets |
| 142 // needs to be audited. See http://crbug.com/590369 for more details. |
| 143 m_editor->frame().document()->updateStyleAndLayoutIgnorePendingStyleshee
ts(); |
| 144 |
| 141 m_editor->frame().selection().revealSelection(ScrollAlignment::alignToEd
geIfNeeded, RevealExtent); | 145 m_editor->frame().selection().revealSelection(ScrollAlignment::alignToEd
geIfNeeded, RevealExtent); |
| 146 } |
| 142 } | 147 } |
| 143 | 148 |
| 144 // When an event handler has moved the selection outside of a text control | 149 // When an event handler has moved the selection outside of a text control |
| 145 // we should use the target control's selection for this editing operation. | 150 // we should use the target control's selection for this editing operation. |
| 146 VisibleSelection Editor::selectionForCommand(Event* event) | 151 VisibleSelection Editor::selectionForCommand(Event* event) |
| 147 { | 152 { |
| 148 frame().selection().updateIfNeeded(); | 153 frame().selection().updateIfNeeded(); |
| 149 VisibleSelection selection = frame().selection().selection(); | 154 VisibleSelection selection = frame().selection().selection(); |
| 150 if (!event) | 155 if (!event) |
| 151 return selection; | 156 return selection; |
| (...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 | 825 |
| 821 spellChecker().updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text[
0])); | 826 spellChecker().updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text[
0])); |
| 822 | 827 |
| 823 // Insert the text | 828 // Insert the text |
| 824 TypingCommand::insertText(*selection.start().document(), text, selection, | 829 TypingCommand::insertText(*selection.start().document(), text, selection, |
| 825 selectInsertedText ? TypingCommand::SelectInsertedText : 0, | 830 selectInsertedText ? TypingCommand::SelectInsertedText : 0, |
| 826 triggeringEvent && triggeringEvent->isComposition() ? TypingCommand::Tex
tCompositionConfirm : TypingCommand::TextCompositionNone); | 831 triggeringEvent && triggeringEvent->isComposition() ? TypingCommand::Tex
tCompositionConfirm : TypingCommand::TextCompositionNone); |
| 827 | 832 |
| 828 // Reveal the current selection | 833 // Reveal the current selection |
| 829 if (LocalFrame* editedFrame = selection.start().document()->frame()) { | 834 if (LocalFrame* editedFrame = selection.start().document()->frame()) { |
| 830 if (Page* page = editedFrame->page()) | 835 if (Page* page = editedFrame->page()) { |
| 831 toLocalFrame(page->focusController().focusedOrMainFrame())->selectio
n().revealSelection(ScrollAlignment::alignCenterIfNeeded); | 836 LocalFrame* focusedOrMainFrame = toLocalFrame(page->focusController(
).focusedOrMainFrame()); |
| 837 |
| 838 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingSty
lesheets |
| 839 // needs to be audited. See http://crbug.com/590369 for more detail
s. |
| 840 focusedOrMainFrame->document()->updateStyleAndLayoutIgnorePendingSty
lesheets(); |
| 841 |
| 842 focusedOrMainFrame->selection().revealSelection(ScrollAlignment::ali
gnCenterIfNeeded); |
| 843 } |
| 832 } | 844 } |
| 833 | 845 |
| 834 return true; | 846 return true; |
| 835 } | 847 } |
| 836 | 848 |
| 837 bool Editor::insertLineBreak() | 849 bool Editor::insertLineBreak() |
| 838 { | 850 { |
| 839 if (!canEdit()) | 851 if (!canEdit()) |
| 840 return false; | 852 return false; |
| 841 | 853 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1075 MutableStylePropertySet* style = MutableStylePropertySet::create(HTMLQuirksM
ode); | 1087 MutableStylePropertySet* style = MutableStylePropertySet::create(HTMLQuirksM
ode); |
| 1076 style->setProperty(CSSPropertyDirection, direction == LeftToRightWritingDire
ction ? "ltr" : direction == RightToLeftWritingDirection ? "rtl" : "inherit", fa
lse); | 1088 style->setProperty(CSSPropertyDirection, direction == LeftToRightWritingDire
ction ? "ltr" : direction == RightToLeftWritingDirection ? "rtl" : "inherit", fa
lse); |
| 1077 applyParagraphStyleToSelection(style, InputEvent::InputType::SetWritingDirec
tion); | 1089 applyParagraphStyleToSelection(style, InputEvent::InputType::SetWritingDirec
tion); |
| 1078 } | 1090 } |
| 1079 | 1091 |
| 1080 void Editor::revealSelectionAfterEditingOperation(const ScrollAlignment& alignme
nt, RevealExtentOption revealExtentOption) | 1092 void Editor::revealSelectionAfterEditingOperation(const ScrollAlignment& alignme
nt, RevealExtentOption revealExtentOption) |
| 1081 { | 1093 { |
| 1082 if (m_preventRevealSelection) | 1094 if (m_preventRevealSelection) |
| 1083 return; | 1095 return; |
| 1084 | 1096 |
| 1097 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets |
| 1098 // needs to be audited. See http://crbug.com/590369 for more details. |
| 1099 frame().document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
| 1100 |
| 1085 frame().selection().revealSelection(alignment, revealExtentOption); | 1101 frame().selection().revealSelection(alignment, revealExtentOption); |
| 1086 } | 1102 } |
| 1087 | 1103 |
| 1088 void Editor::transpose() | 1104 void Editor::transpose() |
| 1089 { | 1105 { |
| 1090 if (!canEdit()) | 1106 if (!canEdit()) |
| 1091 return; | 1107 return; |
| 1092 | 1108 |
| 1093 VisibleSelection selection = frame().selection().selection(); | 1109 VisibleSelection selection = frame().selection().selection(); |
| 1094 if (!selection.isCaret()) | 1110 if (!selection.isCaret()) |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1413 | 1429 |
| 1414 DEFINE_TRACE(Editor) | 1430 DEFINE_TRACE(Editor) |
| 1415 { | 1431 { |
| 1416 visitor->trace(m_frame); | 1432 visitor->trace(m_frame); |
| 1417 visitor->trace(m_lastEditCommand); | 1433 visitor->trace(m_lastEditCommand); |
| 1418 visitor->trace(m_undoStack); | 1434 visitor->trace(m_undoStack); |
| 1419 visitor->trace(m_mark); | 1435 visitor->trace(m_mark); |
| 1420 } | 1436 } |
| 1421 | 1437 |
| 1422 } // namespace blink | 1438 } // namespace blink |
| OLD | NEW |