| Index: remoting/ios/client_gestures.mm
|
| diff --git a/remoting/ios/client_gestures.mm b/remoting/ios/client_gestures.mm
|
| index a868d44b348441b7a35e76ab31d1c0097f4fe01b..4a1404f2a1b5941d5af7569e11f69890f75a8156 100644
|
| --- a/remoting/ios/client_gestures.mm
|
| +++ b/remoting/ios/client_gestures.mm
|
| @@ -8,6 +8,7 @@
|
|
|
| #import "remoting/ios/client_gestures.h"
|
|
|
| +#import "remoting/ios/app/host_view_controller.h"
|
| #import "remoting/ios/session/remoting_client.h"
|
|
|
| #include "base/logging.h"
|
| @@ -27,9 +28,10 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
|
|
| @implementation ClientGestures
|
|
|
| -- (instancetype)initWithView:(UIView*)view client:(RemotingClient*)client {
|
| - _view = view;
|
| - _client = client;
|
| +- (instancetype)initWithHostViewController:(HostViewController*)controller {
|
| + _view = controller.view;
|
| + _client = controller.client;
|
| + _controller = controller;
|
|
|
| _inputScheme = HostInputSchemeTouch;
|
|
|
| @@ -37,7 +39,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| initWithTarget:self
|
| action:@selector(longPressGestureTriggered:)];
|
| _longPressRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_longPressRecognizer];
|
| + [_view addGestureRecognizer:_longPressRecognizer];
|
|
|
| _panRecognizer = [[UIPanGestureRecognizer alloc]
|
| initWithTarget:self
|
| @@ -45,7 +47,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| _panRecognizer.minimumNumberOfTouches = 1;
|
| _panRecognizer.maximumNumberOfTouches = 2;
|
| _panRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_panRecognizer];
|
| + [_view addGestureRecognizer:_panRecognizer];
|
|
|
| _flingRecognizer = [[UIPanGestureRecognizer alloc]
|
| initWithTarget:self
|
| @@ -53,7 +55,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| _flingRecognizer.minimumNumberOfTouches = 1;
|
| _flingRecognizer.maximumNumberOfTouches = 1;
|
| _flingRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_flingRecognizer];
|
| + [_view addGestureRecognizer:_flingRecognizer];
|
|
|
| _scrollRecognizer = [[UIPanGestureRecognizer alloc]
|
| initWithTarget:self
|
| @@ -61,7 +63,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| _scrollRecognizer.minimumNumberOfTouches = 2;
|
| _scrollRecognizer.maximumNumberOfTouches = 2;
|
| _scrollRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_scrollRecognizer];
|
| + [_view addGestureRecognizer:_scrollRecognizer];
|
|
|
| _threeFingerPanRecognizer = [[UIPanGestureRecognizer alloc]
|
| initWithTarget:self
|
| @@ -69,33 +71,33 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| _threeFingerPanRecognizer.minimumNumberOfTouches = 3;
|
| _threeFingerPanRecognizer.maximumNumberOfTouches = 3;
|
| _threeFingerPanRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_threeFingerPanRecognizer];
|
| + [_view addGestureRecognizer:_threeFingerPanRecognizer];
|
|
|
| _pinchRecognizer = [[UIPinchGestureRecognizer alloc]
|
| initWithTarget:self
|
| action:@selector(pinchGestureTriggered:)];
|
| _pinchRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_pinchRecognizer];
|
| + [_view addGestureRecognizer:_pinchRecognizer];
|
|
|
| _singleTapRecognizer = [[UITapGestureRecognizer alloc]
|
| initWithTarget:self
|
| action:@selector(tapGestureTriggered:)];
|
| _singleTapRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_singleTapRecognizer];
|
| + [_view addGestureRecognizer:_singleTapRecognizer];
|
|
|
| _twoFingerTapRecognizer = [[UITapGestureRecognizer alloc]
|
| initWithTarget:self
|
| action:@selector(twoFingerTapGestureTriggered:)];
|
| _twoFingerTapRecognizer.numberOfTouchesRequired = 2;
|
| _twoFingerTapRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_twoFingerTapRecognizer];
|
| + [_view addGestureRecognizer:_twoFingerTapRecognizer];
|
|
|
| _threeFingerTapRecognizer = [[UITapGestureRecognizer alloc]
|
| initWithTarget:self
|
| action:@selector(threeFingerTapGestureTriggered:)];
|
| _threeFingerTapRecognizer.numberOfTouchesRequired = 3;
|
| _threeFingerPanRecognizer.delegate = self;
|
| - [view addGestureRecognizer:_threeFingerTapRecognizer];
|
| + [_view addGestureRecognizer:_threeFingerTapRecognizer];
|
|
|
| _inputScheme = HostInputSchemeTouch;
|
|
|
| @@ -103,6 +105,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| [_twoFingerTapRecognizer
|
| requireGestureRecognizerToFail:_threeFingerTapRecognizer];
|
| [_pinchRecognizer requireGestureRecognizerToFail:_singleTapRecognizer];
|
| + [_pinchRecognizer requireGestureRecognizerToFail:_threeFingerPanRecognizer];
|
| [_panRecognizer requireGestureRecognizerToFail:_singleTapRecognizer];
|
| [_threeFingerPanRecognizer
|
| requireGestureRecognizerToFail:_threeFingerTapRecognizer];
|
| @@ -113,14 +116,14 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| action:@selector(edgeGestureTriggered:)];
|
| //_edgeGesture.edges = UIRectEdgeLeft;
|
| _edgeGesture.delegate = self;
|
| - [view addGestureRecognizer:_edgeGesture];
|
| + [_view addGestureRecognizer:_edgeGesture];
|
|
|
| _swipeGesture = [[UISwipeGestureRecognizer alloc]
|
| initWithTarget:self
|
| action:@selector(swipeGestureTriggered:)];
|
| _swipeGesture.numberOfTouchesRequired = 2;
|
| _swipeGesture.delegate = self;
|
| - [view addGestureRecognizer:_swipeGesture];
|
| + [_view addGestureRecognizer:_swipeGesture];
|
|
|
| return self;
|
| }
|
| @@ -325,29 +328,24 @@ remoting::GestureInterpreter::GestureState toGestureState(
|
| }
|
|
|
| - (IBAction)threeFingerTapGestureTriggered:(UITapGestureRecognizer*)sender {
|
| - // LOG_TRACE(INFO) << "threeFingerTapGestureTriggered";
|
| - if (_inputScheme == HostInputSchemeTouch) {
|
| - // disabled
|
| - return;
|
| - }
|
| -
|
| - // if ([_scene containsTouchPoint:[sender locationInView:self.view]]) {
|
| - // [Utility middleClickOn:_clientToHostProxy at:_scene.mousePosition];
|
| - // }
|
| + CGPoint touchPoint = [sender locationInView:_view];
|
| + _client.gestureInterpreter->ThreeFingerTap(touchPoint.x, touchPoint.y);
|
| }
|
|
|
| - (IBAction)threeFingerPanGestureTriggered:(UIPanGestureRecognizer*)sender {
|
| // LOG_TRACE(INFO) << "threeFingerPanGestureTriggered";
|
| - // if ([sender state] == UIGestureRecognizerStateChanged) {
|
| - // CGPoint translation = [sender translationInView:self.view];
|
| - // if (translation.y > 0) {
|
| - // // Swiped down - do nothing
|
| - // } else if (translation.y < 0) {
|
| - // // Swiped up
|
| - // [_keyEntryView becomeFirstResponder];
|
| - // }
|
| - // [sender setTranslation:CGPointZero inView:self.view];
|
| - // }
|
| + if ([sender state] != UIGestureRecognizerStateEnded) {
|
| + return;
|
| + }
|
| +
|
| + CGPoint translation = [sender translationInView:_view];
|
| + if (translation.y > 0) {
|
| + // Swiped down - hide keyboard (for now)
|
| + [_controller hideKeyboard];
|
| + } else if (translation.y < 0) {
|
| + // Swiped up - show keyboard
|
| + [_controller showKeyboard];
|
| + }
|
| }
|
|
|
| - (IBAction)edgeGestureTriggered:(UIScreenEdgePanGestureRecognizer*)sender {
|
|
|