Reland "Process touch events during the tab-dragging window move"
This is a reland of 402ea29b Original change was reverted due to msan failures. Indeed it didn't take care of the case of window destruction during move. This CL includes its fix. Original change's description: > Process touch events during the tab-dragging window move > > When the touch events move very quickly on detaching, some > touch events are already queued, those queued touch events > aren't processed properly. > > - Detach() aren't releasing the capture on the source widget. > This means those queued touch events are targeted to the > source widget instead of the moving widget, but the touch > history is already transferred to the moving widget, which > makes troubles on gesture recognition. We can release the > capture on the detach on this specific situation. > - the recognized gestures are sent to the root window of > the moving widget and nobody can handle. The new class > RemainingGestureEventHandler handles them. > - RemainingGestureEventHandler should not handle events > originated from ET_TOUCH_CANCELLED -- some test cases > actually fail if so. ET_TOUCH_CANCELLED can happen internally > within the browser (like Window::CleanupGestureState()), > but that's not the intention of this class. > > Bug: 943316 > Test: the new test case in interactive_ui_tests > Change-Id: I679562d7707342874960dd7ff4d70d749f1ad437 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545113 > Reviewed-by: Jun Mukai <mukai@chromium.org> > Reviewed-by: Scott Violet <sky@chromium.org> > Commit-Queue: Jun Mukai <mukai@chromium.org> > Cr-Commit-Position: refs/heads/master@{#647789} Bug: 943316 Change-Id: Ice077b4e53309a2a59b254581da7e6dd0f3b409c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1553171 Commit-Queue: Jun Mukai <mukai@chromium.org> Reviewed-by:Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#648357}
Showing
Please register or sign in to comment