Changeset 241949 in webkit
- Timestamp:
- Feb 22, 2019 9:09:27 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 1 deleted
- 11 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r241942 r241949 1 2019-02-22 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction 4 https://bugs.webkit.org/show_bug.cgi?id=194703 5 <rdar://problem/48111775> 6 7 Reviewed by Ryosuke Niwa. 8 9 Rebaseline some existing tests to expect input events of type "formatSetBlockTextDirection" instead of 10 "formatSetInlineTextDirection" when changing paragraph text direction; additionally, add a new layout test that 11 changes the inline text direction in some Bidi text, and verify that "formatSetInlineTextDirection" is emitted 12 in this scenario, and that calling `preventDefault()` in the beforeinput event handler causes no change to be 13 made. 14 15 * editing/input/ios/rtl-keyboard-input-on-focus-expected.txt: 16 * fast/events/before-input-events-prevent-block-text-direction-expected.txt: Added. 17 * fast/events/before-input-events-prevent-block-text-direction.html: Renamed from LayoutTests/fast/events/before-input-events-prevent-text-direction.html. 18 * fast/events/before-input-events-prevent-inline-text-direction-expected.txt: Added. 19 * fast/events/before-input-events-prevent-inline-text-direction.html: Added. 20 * fast/events/before-input-events-prevent-text-direction-expected.txt: Removed. 21 1 22 2019-02-22 Rob Buis <rbuis@igalia.com> 2 23 -
trunk/LayoutTests/editing/input/ios/rtl-keyboard-input-on-focus-expected.txt
r238939 r241949 15 15 Observed 'beforeinput' events: [ 16 16 { 17 "inputType": "formatSet InlineTextDirection",17 "inputType": "formatSetBlockTextDirection", 18 18 "data": "rtl", 19 19 "order": 1 20 20 }, 21 21 { 22 "inputType": "formatSet InlineTextDirection",22 "inputType": "formatSetBlockTextDirection", 23 23 "data": "ltr", 24 24 "order": 3 … … 27 27 Observed 'input' events: [ 28 28 { 29 "inputType": "formatSet InlineTextDirection",29 "inputType": "formatSetBlockTextDirection", 30 30 "data": "rtl", 31 31 "order": 2 32 32 }, 33 33 { 34 "inputType": "formatSet InlineTextDirection",34 "inputType": "formatSetBlockTextDirection", 35 35 "data": "ltr", 36 36 "order": 4 -
trunk/Source/WebCore/ChangeLog
r241947 r241949 1 2019-02-22 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction 4 https://bugs.webkit.org/show_bug.cgi?id=194703 5 <rdar://problem/48111775> 6 7 Reviewed by Ryosuke Niwa. 8 9 Currently, when changing text direction, WebKit always sends input events of type formatSetInlineTextDirection, 10 even when changing paragraph text direction. Instead, we should be emitting formatSetBlockTextDirection in this 11 scenario. This is problematic when using the context menus on macOS to change writing direction, since changing 12 "Selection Direction" is currently indistinguishable from changing "Paragraph Direction". 13 14 To fix this, we split EditAction::SetWritingDirection into EditAction::SetInlineWritingDirection and 15 EditAction::SetBlockWritingDirection, which emit inline and block text direction input events, respectively. 16 17 Tests: fast/events/before-input-events-prevent-block-text-direction.html 18 fast/events/before-input-events-prevent-inline-text-direction.html 19 20 * editing/CompositeEditCommand.cpp: 21 (WebCore::CompositeEditCommand::apply): 22 * editing/EditAction.cpp: 23 (WebCore::undoRedoLabel): 24 * editing/EditAction.h: 25 * editing/EditCommand.cpp: 26 (WebCore::inputTypeNameForEditingAction): 27 * editing/Editor.cpp: 28 (WebCore::inputEventDataForEditingStyleAndAction): 29 (WebCore::Editor::setBaseWritingDirection): 30 * editing/EditorCommand.cpp: 31 (WebCore::executeMakeTextWritingDirectionLeftToRight): 32 (WebCore::executeMakeTextWritingDirectionNatural): 33 (WebCore::executeMakeTextWritingDirectionRightToLeft): 34 1 35 2019-02-22 Rob Buis <rbuis@igalia.com> 2 36 -
trunk/Source/WebCore/editing/CompositeEditCommand.cpp
r240342 r241949 343 343 case EditAction::Paste: 344 344 case EditAction::DeleteByDrag: 345 case EditAction::SetWritingDirection: 345 case EditAction::SetInlineWritingDirection: 346 case EditAction::SetBlockWritingDirection: 346 347 case EditAction::Cut: 347 348 case EditAction::Unspecified: -
trunk/Source/WebCore/editing/EditAction.cpp
r240342 r241949 75 75 case EditAction::Justify: 76 76 return WEB_UI_STRING_KEY("Justify", "Justify (Undo action name)", "Undo action name"); 77 case EditAction::SetWritingDirection: 77 case EditAction::SetInlineWritingDirection: 78 case EditAction::SetBlockWritingDirection: 78 79 return WEB_UI_STRING_KEY("Set Writing Direction", "Set Writing Direction (Undo action name)", "Undo action name"); 79 80 case EditAction::Subscript: -
trunk/Source/WebCore/editing/EditAction.h
r240342 r241949 55 55 Center, 56 56 Justify, 57 SetWritingDirection, 57 SetInlineWritingDirection, 58 SetBlockWritingDirection, 58 59 Subscript, 59 60 Superscript, -
trunk/Source/WebCore/editing/EditCommand.cpp
r235775 r241949 111 111 case EditAction::Outdent: 112 112 return "formatOutdent"_s; 113 case EditAction::Set WritingDirection:113 case EditAction::SetInlineWritingDirection: 114 114 return "formatSetInlineTextDirection"_s; 115 case EditAction::SetBlockWritingDirection: 116 return "formatSetBlockTextDirection"_s; 115 117 default: 116 118 return emptyString(); -
trunk/Source/WebCore/editing/Editor.cpp
r241749 r241949 154 154 case EditAction::SetColor: 155 155 return style->getPropertyValue(CSSPropertyColor); 156 case EditAction::SetWritingDirection: 156 case EditAction::SetInlineWritingDirection: 157 case EditAction::SetBlockWritingDirection: 157 158 return style->getPropertyValue(CSSPropertyDirection); 158 159 default: … … 1804 1805 auto& focusedFormElement = downcast<HTMLTextFormControlElement>(*focusedElement); 1805 1806 auto directionValue = direction == WritingDirection::LeftToRight ? "ltr" : "rtl"; 1806 auto writingDirectionInputTypeName = inputTypeNameForEditingAction(EditAction::Set WritingDirection);1807 auto writingDirectionInputTypeName = inputTypeNameForEditingAction(EditAction::SetBlockWritingDirection); 1807 1808 if (!dispatchBeforeInputEvent(focusedFormElement, writingDirectionInputTypeName, directionValue)) 1808 1809 return; … … 1816 1817 auto style = MutableStyleProperties::create(); 1817 1818 style->setProperty(CSSPropertyDirection, direction == WritingDirection::LeftToRight ? "ltr" : direction == WritingDirection::RightToLeft ? "rtl" : "inherit", false); 1818 applyParagraphStyleToSelection(style.ptr(), EditAction::Set WritingDirection);1819 applyParagraphStyleToSelection(style.ptr(), EditAction::SetBlockWritingDirection); 1819 1820 } 1820 1821 -
trunk/Source/WebCore/editing/EditorCommand.cpp
r241719 r241949 586 586 style->setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed); 587 587 style->setProperty(CSSPropertyDirection, CSSValueLtr); 588 frame.editor().applyStyle(style.ptr(), EditAction::Set WritingDirection);588 frame.editor().applyStyle(style.ptr(), EditAction::SetInlineWritingDirection); 589 589 return true; 590 590 } … … 594 594 auto style = MutableStyleProperties::create(); 595 595 style->setProperty(CSSPropertyUnicodeBidi, CSSValueNormal); 596 frame.editor().applyStyle(style.ptr(), EditAction::Set WritingDirection);596 frame.editor().applyStyle(style.ptr(), EditAction::SetInlineWritingDirection); 597 597 return true; 598 598 } … … 603 603 style->setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed); 604 604 style->setProperty(CSSPropertyDirection, CSSValueRtl); 605 frame.editor().applyStyle(style.ptr(), EditAction::Set WritingDirection);605 frame.editor().applyStyle(style.ptr(), EditAction::SetInlineWritingDirection); 606 606 return true; 607 607 } -
trunk/Source/WebKitLegacy/win/ChangeLog
r241749 r241949 1 2019-02-22 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction 4 https://bugs.webkit.org/show_bug.cgi?id=194703 5 <rdar://problem/48111775> 6 7 Reviewed by Ryosuke Niwa. 8 9 * WebCoreSupport/WebEditorClient.cpp: 10 (undoNameForEditAction): 11 1 12 2019-02-18 Wenson Hsieh <wenson_hsieh@apple.com> 2 13 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebEditorClient.cpp
r241749 r241949 589 589 case EditAction::Center: return WEB_UI_STRING_KEY("Center", "Center (Undo action name)", "Undo action name"); 590 590 case EditAction::Justify: return WEB_UI_STRING_KEY("Justify", "Justify (Undo action name)", "Undo action name"); 591 case EditAction::SetWritingDirection: return WEB_UI_STRING_KEY("Set Writing Direction", "Set Writing Direction (Undo action name)", "Undo action name"); 591 case EditAction::SetInlineWritingDirection: 592 case EditAction::SetBlockWritingDirection: 593 return WEB_UI_STRING_KEY("Set Writing Direction", "Set Writing Direction (Undo action name)", "Undo action name"); 592 594 case EditAction::Subscript: return WEB_UI_STRING_KEY("Subscript", "Subscript (Undo action name)", "Undo action name"); 593 595 case EditAction::Superscript: return WEB_UI_STRING_KEY("Superscript", "Superscript (Undo action name)", "Undo action name");
Note: See TracChangeset
for help on using the changeset viewer.