Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fa2caa624d631c7085d6cb55a6b83ebc1c2ffe49 https://github.com/WebKit/WebKit/commit/fa2caa624d631c7085d6cb55a6b83ebc1c2ffe49 Author: Abrar Rahman Protyasha <a_protya...@apple.com> Date: 2023-05-08 (Mon, 08 May 2023)
Changed paths: A LayoutTests/fast/events/pointer/ios/drag-populates-pointer-events-with-movementxy-fields-expected.txt A LayoutTests/fast/events/pointer/ios/drag-populates-pointer-events-with-movementxy-fields.html M LayoutTests/platform/gtk/pointer-lock/mouse-event-delivery-expected.txt M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/pointerlock/movementX_Y_basic-expected.txt M Source/WebCore/dom/MouseEvent.idl M Source/WebCore/dom/MouseEventInit.idl M Source/WebCore/dom/PointerEvent.h M Source/WebCore/dom/ios/PointerEventIOS.cpp M Source/WebCore/page/EventHandler.cpp M Source/WebCore/page/EventHandler.h M Source/WebCore/page/PointerCaptureController.cpp M Source/WebCore/page/PointerCaptureController.h M Source/WebCore/platform/PointerID.h M Source/WebKit/UIProcess/WebPageProxy.h Log Message: ----------- movementX and movementY are missing from pointerMove events (255207) rdar://108112600 https://bugs.webkit.org/show_bug.cgi?id=255207 Reviewed by Wenson Hsieh. This commit performs a few things: - Expose `movementX`/`movementY` *generally* in MouseEvent structs rather than locking it behind POINTER_LOCK support. This is because even without implementing pointer lock on iOS, we can (a) easily compute these values and (b) the attributes are generally useful. - Introduce a bunch of plumbing to pass touch event deltas from our EventHandler to the PointerEvent creation. The bookkeeping required to compute these touch deltas is placed in WebKitAdditions. - Tangentially, changes the `PointerID` type to represent uint32_t instead of its signed sibling. I've done this because we're passing in unsigned identifiers when creating PointerEvents, and I've logged a few cases of ID *overflow*. - Add a layout test to verify correctness of the movementX/Y fields of pointer events generated by touch gestures. - Corrects some test expectations now that we expose `movementX`/`movementY` regardless of pointer lock support. * LayoutTests/fast/events/pointer/ios/drag-populates-pointer-events-with-movementxy-fields-expected.txt: Added. * LayoutTests/fast/events/pointer/ios/drag-populates-pointer-events-with-movementxy-fields.html: Added. * LayoutTests/platform/gtk/pointer-lock/mouse-event-delivery-expected.txt: * LayoutTests/platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: * LayoutTests/platform/wpe/imported/w3c/web-platform-tests/pointerlock/movementX_Y_basic-expected.txt: * Source/WebCore/dom/MouseEvent.idl: * Source/WebCore/dom/MouseEventInit.idl: * Source/WebCore/dom/PointerEvent.h: * Source/WebCore/dom/ios/PointerEventIOS.cpp: (WebCore::PointerEvent::create): (WebCore::PointerEvent::PointerEvent): * Source/WebCore/page/EventHandler.cpp: (WebCore::EventHandler::clear): (WebCore::EventHandler::handleTouchEvent): * Source/WebCore/page/EventHandler.h: * Source/WebCore/page/PointerCaptureController.cpp: (WebCore::PointerCaptureController::dispatchEventForTouchAtIndex): * Source/WebCore/page/PointerCaptureController.h: * Source/WebCore/platform/PointerID.h: * Source/WebKit/UIProcess/WebPageProxy.h: Canonical link: https://commits.webkit.org/263829@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes