New issue
Advanced search Search tips

Issue 718704 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Feature



Sign in to add a comment

[Chromoting iOS] Gesture handling and mouse/touch injecting

Project Member Reported by yuweih@chromium.org, May 5 2017

Issue description

This tracks the works to support mouse/touch injection from iOS client to the host.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d

commit d980e96a774c7e8d82039e5ef371b6ac0cb33b5d
Author: yuweih <yuweih@chromium.org>
Date: Tue May 09 03:53:05 2017

[CRD iOS] Inject mouse events to the host

This CL adds functionality to inject these mouse events:
* One-finger tap -> left click
* Two-finger tap -> right click
* Long-press -> Dragging

in touch input mode.

This CL also factors out an InputStrategy class from GestureInterpreter so that
later we can easily introduce the trackpad input mode.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2862893003
Cr-Commit-Position: refs/heads/master@{#470171}

[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/BUILD.gn
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/desktop_viewport.cc
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/desktop_viewport.h
[add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/direct_input_strategy.cc
[add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/direct_input_strategy.h
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/gesture_interpreter.cc
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/gesture_interpreter.h
[add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/input_strategy.h
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/ios/client_gestures.mm
[modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/ios/session/remoting_client.mm

Project Member

Comment 2 by bugdroid1@chromium.org, May 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7fbc8055f73d33056aafa74a39b8a0f3b5c99547

commit 7fbc8055f73d33056aafa74a39b8a0f3b5c99547
Author: yuweih <yuweih@chromium.org>
Date: Wed May 17 05:23:49 2017

[CRD iOS] Hook the touch feedback animation and some refactoring

This CL:
1. Refactors a RenderStub interface to be used by GestureInterpreter to control
   the renderer directly.
2. Hook the touch feedback animation to GestureInterpreter.
3. Redesign the cursor tracking of the InputStrategy a little bit. Simply let
   the InputStrategy itself to track the cursor position, which can simplify a
   few things.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2879743002
Cr-Commit-Position: refs/heads/master@{#472337}

[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/BUILD.gn
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/direct_input_strategy.cc
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/direct_input_strategy.h
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/gesture_interpreter.cc
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/gesture_interpreter.h
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/input_strategy.h
[add] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/renderer_proxy.cc
[add] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/renderer_proxy.h
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/display/gl_display_handler.h
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/display/gl_display_handler.mm
[modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/session/remoting_client.mm

Project Member

Comment 4 by bugdroid1@chromium.org, May 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6

commit e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6
Author: yuweih <yuweih@chromium.org>
Date: Fri May 19 01:22:45 2017

[CRD iOS] Trackpad Input Mode

This CL adds support for the trackpad input mode to the CRD iOS client.

It also renames some gestures to be more abstract so that it's easier to do
things like using 3D touch for dragging in the future.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2891603002
Cr-Commit-Position: refs/heads/master@{#473012}

[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/BUILD.gn
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/desktop_viewport.cc
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/desktop_viewport.h
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/direct_input_strategy.cc
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/direct_input_strategy.h
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/gesture_interpreter.cc
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/gesture_interpreter.h
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/input_strategy.h
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/renderer_proxy.cc
[add] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/trackpad_input_strategy.cc
[add] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/trackpad_input_strategy.h
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/ios/app/host_view_controller.mm
[modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/ios/client_gestures.mm

Project Member

Comment 5 by bugdroid1@chromium.org, May 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b932f1dd70ed60e43ca6fea500d01e155f2eae36

commit b932f1dd70ed60e43ca6fea500d01e155f2eae36
Author: yuweih <yuweih@chromium.org>
Date: Tue May 23 21:18:52 2017

[CRD iOS] Ignore touch event when the touch point is out of the canvas in direct input mode

Previously if the user taps outside the bounds of the desktop canvas,
GestureInterpreter will still attempt to inject the out-of-bound mouse event
and show the touch feedback. The mouse event will be clamped back to the edge
of the desktop (e.g. (50, -100) => (50, 0)).

The Android client will ignore out-of-bound touch inputs in touch mode. This
CL does the same thing for iOS client.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2897143002
Cr-Commit-Position: refs/heads/master@{#474057}

[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/desktop_viewport.cc
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/desktop_viewport.h
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/direct_input_strategy.cc
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/direct_input_strategy.h
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/gesture_interpreter.cc
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/gesture_interpreter.h
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/input_strategy.h
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/trackpad_input_strategy.cc
[modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/trackpad_input_strategy.h

Comment 6 by yuweih@chromium.org, May 24 2017

Summary: [Chromoting iOS] Gesture handling and mouse/touch injecting (was: [Chromoting iOS] Mouse/touch event injection)
Project Member

Comment 7 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e745346e71a014a64f007da11dd719427175d872

commit e745346e71a014a64f007da11dd719427175d872
Author: yuweih <yuweih@chromium.org>
Date: Thu May 25 18:44:49 2017

[CRD iOS] Add support for three-finger gestures

This CL adds gesture supports for:

* Three-finger tap => inject middle click
* Three-finger swipe => show/hide keyboard

The swipe-down gesture was to show the navigation bar in Android, but let's use
it to hide the keyboard for now.

THis CL also refactors InjectMouseClick a little bit to handle all three button
clicks.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2904703003
Cr-Commit-Position: refs/heads/master@{#474724}

[modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/client/gesture_interpreter.cc
[modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/client/gesture_interpreter.h
[modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/app/host_view_controller.mm
[modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/client_gestures.h
[modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/client_gestures.mm

Project Member

Comment 8 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cbaa8807189213cb4c94be2523a0b4526cda935

commit 6cbaa8807189213cb4c94be2523a0b4526cda935
Author: yuweih <yuweih@chromium.org>
Date: Thu May 25 19:18:10 2017

[CRD iOS] Cleanup ClientGestures

Since we have already added support for all gestures we previously have, we
can start cleaning up the ClientGestures class now.

This CL:
* Removes unused and/or commented-out logic in ClientGestures.
* Hides private details about the class inside the .mm file using class
  extension.

BUG= 718704 

Review-Url: https://codereview.chromium.org/2898243005
Cr-Commit-Position: refs/heads/master@{#474746}

[modify] https://crrev.com/6cbaa8807189213cb4c94be2523a0b4526cda935/remoting/ios/client_gestures.h
[modify] https://crrev.com/6cbaa8807189213cb4c94be2523a0b4526cda935/remoting/ios/client_gestures.mm

Comment 9 by yuweih@chromium.org, Jul 14 2017

Status: Fixed (was: Assigned)

Sign in to add a comment