Title: [280098] trunk/Source/WebKit
- Revision
- 280098
- Author
- [email protected]
- Date
- 2021-07-20 12:44:18 -0700 (Tue, 20 Jul 2021)
Log Message
IBeam cursor is horizontal in Mail compose window
https://bugs.webkit.org/show_bug.cgi?id=228107
<rdar://problem/80636912>
Reviewed by Wenson Hsieh.
Recently we added support for vertical writing mode for the IBeam
cursor in WebKit. This added a new parameter isHorizontalWritingMode
which defaults to false. This causes the IBeam to appear horizontal in
cases where WebPage::populateCaretContext is not called, regressing expected
behavior.
This patch changes isHorizontalWritingMode to isVerticalWritingMode
to fix this, while still allowing support for vertical writing mode.
* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView pointerInteraction:styleForRegion:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::populateCaretContext):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (280097 => 280098)
--- trunk/Source/WebKit/ChangeLog 2021-07-20 19:35:56 UTC (rev 280097)
+++ trunk/Source/WebKit/ChangeLog 2021-07-20 19:44:18 UTC (rev 280098)
@@ -1,3 +1,29 @@
+2021-07-20 Kate Cheney <[email protected]>
+
+ IBeam cursor is horizontal in Mail compose window
+ https://bugs.webkit.org/show_bug.cgi?id=228107
+ <rdar://problem/80636912>
+
+ Reviewed by Wenson Hsieh.
+
+ Recently we added support for vertical writing mode for the IBeam
+ cursor in WebKit. This added a new parameter isHorizontalWritingMode
+ which defaults to false. This causes the IBeam to appear horizontal in
+ cases where WebPage::populateCaretContext is not called, regressing expected
+ behavior.
+
+ This patch changes isHorizontalWritingMode to isVerticalWritingMode
+ to fix this, while still allowing support for vertical writing mode.
+
+ * Shared/ios/InteractionInformationAtPosition.h:
+ * Shared/ios/InteractionInformationAtPosition.mm:
+ (WebKit::InteractionInformationAtPosition::encode const):
+ (WebKit::InteractionInformationAtPosition::decode):
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView pointerInteraction:styleForRegion:]):
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::populateCaretContext):
+
2021-07-20 Alexander Mikhaylenko <[email protected]>
[GTK] Propagate GtkSettings to web process
Modified: trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.h (280097 => 280098)
--- trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.h 2021-07-20 19:35:56 UTC (rev 280097)
+++ trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.h 2021-07-20 19:44:18 UTC (rev 280098)
@@ -73,7 +73,7 @@
#endif
bool shouldNotUseIBeamInEditableContent { false };
bool isImageOverlayText { false };
- bool isHorizontalWritingMode { false };
+ bool isVerticalWritingMode { false };
WebCore::FloatPoint adjustedPointForNodeRespondingToClickEvents;
URL url;
URL imageURL;
Modified: trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.mm (280097 => 280098)
--- trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.mm 2021-07-20 19:35:56 UTC (rev 280097)
+++ trunk/Source/WebKit/Shared/ios/InteractionInformationAtPosition.mm 2021-07-20 19:44:18 UTC (rev 280098)
@@ -83,7 +83,7 @@
#endif
encoder << shouldNotUseIBeamInEditableContent;
encoder << isImageOverlayText;
- encoder << isHorizontalWritingMode;
+ encoder << isVerticalWritingMode;
encoder << elementContext;
encoder << imageElementContext;
}
@@ -214,7 +214,7 @@
if (!decoder.decode(result.isImageOverlayText))
return false;
- if (!decoder.decode(result.isHorizontalWritingMode))
+ if (!decoder.decode(result.isVerticalWritingMode))
return false;
if (!decoder.decode(result.elementContext))
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (280097 => 280098)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-07-20 19:35:56 UTC (rev 280097)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-07-20 19:44:18 UTC (rev 280098)
@@ -9689,8 +9689,8 @@
UIPointerStyle *(^iBeamCursor)(void) = ^{
float beamLength = _positionInformation.caretLength * scaleFactor;
- auto axisOrientation = _positionInformation.isHorizontalWritingMode ? UIAxisVertical : UIAxisHorizontal;
- UIAxis iBeamConstraintAxes = _positionInformation.isHorizontalWritingMode ? UIAxisVertical : UIAxisHorizontal;
+ auto axisOrientation = _positionInformation.isVerticalWritingMode ? UIAxisHorizontal : UIAxisVertical;
+ UIAxis iBeamConstraintAxes = _positionInformation.isVerticalWritingMode ? UIAxisHorizontal : UIAxisVertical;
// If the I-beam is so large that the magnetism is hard to fight, we should not apply any magnetism.
if (beamLength > [UITextInteraction _maximumBeamSnappingLength])
Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (280097 => 280098)
--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-07-20 19:35:56 UTC (rev 280097)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-07-20 19:44:18 UTC (rev 280098)
@@ -3039,9 +3039,9 @@
if (isEditable)
lineRect.setWidth(blockFlow.contentWidth());
- info.isHorizontalWritingMode = renderer->isHorizontalWritingMode();
+ info.isVerticalWritingMode = !renderer->isHorizontalWritingMode();
info.lineCaretExtent = view->contentsToRootView(lineRect);
- info.caretLength = info.isHorizontalWritingMode ? info.lineCaretExtent.height() : info.lineCaretExtent.width();
+ info.caretLength = info.isVerticalWritingMode ? info.lineCaretExtent.width() : info.lineCaretExtent.height();
bool lineContainsRequestPoint = info.lineCaretExtent.contains(request.point);
// Force an I-beam cursor if the page didn't request a hand, and we're inside the bounds of the line.
@@ -3054,7 +3054,7 @@
info.lineCaretExtent = view->contentsToRootView(approximateLineRectInContentCoordinates);
if (!info.lineCaretExtent.contains(request.point) || !isEditable)
info.lineCaretExtent.setY(request.point.y() - info.lineCaretExtent.height() / 2);
- info.caretLength = info.isHorizontalWritingMode ? info.lineCaretExtent.height() : info.lineCaretExtent.width();
+ info.caretLength = info.isVerticalWritingMode ? info.lineCaretExtent.width() : info.lineCaretExtent.height();
}
auto nodeShouldNotUseIBeam = ^(Node* node) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes