Răsfoiți Sursa

Attempt to remove native pinch handling from ios

Ivan Savenko 2 ani în urmă
părinte
comite
aacef72125
1 a modificat fișierele cu 0 adăugiri și 84 ștergeri
  1. 0 84
      client/ios/startSDL.mm

+ 0 - 84
client/ios/startSDL.mm

@@ -28,98 +28,14 @@
 
 @implementation SDLViewObserver
 
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
-	[object removeObserver:self forKeyPath:keyPath];
-
-    UIView * view = [object valueForKeyPath:keyPath];
-
-    auto longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
-    longPress.minimumPressDuration = 0.2;
-    [view addGestureRecognizer:longPress];
-
-    auto pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
-    [view addGestureRecognizer:pinch];
-}
-
-#pragma mark - Gestures
-
-- (void)handleLongPress:(UIGestureRecognizer *)gesture {
-    // send RMB click
-    SDL_EventType mouseButtonType;
-    switch (gesture.state)
-    {
-        case UIGestureRecognizerStateBegan:
-            mouseButtonType = SDL_MOUSEBUTTONDOWN;
-            break;
-        case UIGestureRecognizerStateEnded:
-            mouseButtonType = SDL_MOUSEBUTTONUP;
-            break;
-        default:
-            return;
-    }
-
-    auto renderer = SDL_GetRenderer(mainWindow);
-    float scaleX, scaleY;
-    SDL_Rect viewport;
-    SDL_RenderGetScale(renderer, &scaleX, &scaleY);
-    SDL_RenderGetViewport(renderer, &viewport);
-
-    auto touchedPoint = [gesture locationInView:gesture.view];
-    auto screenScale = UIScreen.mainScreen.nativeScale;
-    Sint32 x = (int)touchedPoint.x * screenScale / scaleX - viewport.x;
-    Sint32 y = (int)touchedPoint.y * screenScale / scaleY - viewport.y;
-
-    SDL_Event rmbEvent;
-    rmbEvent.button = (SDL_MouseButtonEvent){
-        .type = mouseButtonType,
-        .button = SDL_BUTTON_RIGHT,
-        .clicks = 1,
-        .x = x,
-        .y = y,
-    };
-    SDL_PushEvent(&rmbEvent);
-
-    // small hack to prevent cursor jumping
-    if (mouseButtonType == SDL_MOUSEBUTTONUP)
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.025 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-            SDL_Event motionEvent;
-            motionEvent.motion = (SDL_MouseMotionEvent){
-                .type = SDL_MOUSEMOTION,
-                .x = x,
-                .y = y,
-            };
-            SDL_PushEvent(&motionEvent);
-        });
-}
-
-- (void)handlePinch:(UIGestureRecognizer *)gesture {
-    if(gesture.state != UIGestureRecognizerStateBegan || CSH->state != EClientState::GAMEPLAY)
-        return;
-	[GameChatKeyboardHandler sendKeyEventWithKeyCode:SDLK_SPACE];
-}
-
-#pragma mark - UIGestureRecognizerDelegate
-
-- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
-    return [gestureRecognizer isKindOfClass:[UIPinchGestureRecognizer class]];
-}
-
 @end
 
-
 int startSDL(int argc, char * argv[], BOOL startManually)
 {
 	@autoreleasepool {
 		auto observer = [SDLViewObserver new];
 		observer.gameChatHandler = [GameChatKeyboardHandler new];
 
-		id __block sdlWindowCreationObserver = [NSNotificationCenter.defaultCenter addObserverForName:UIWindowDidBecomeKeyNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
-			[NSNotificationCenter.defaultCenter removeObserver:sdlWindowCreationObserver];
-			sdlWindowCreationObserver = nil;
-
-			UIWindow * sdlWindow = note.object;
-			[sdlWindow.rootViewController addObserver:observer forKeyPath:NSStringFromSelector(@selector(view)) options:NSKeyValueObservingOptionNew context:NULL];
-		}];
 		id textFieldObserver = [NSNotificationCenter.defaultCenter addObserverForName:UITextFieldTextDidEndEditingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
 			removeFocusFromActiveInput();
 		}];