| | |
| | | /* |
| | | Simple DirectMedia Layer |
| | | Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> |
| | | Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org> |
| | | |
| | | This software is provided 'as-is', without any express or implied |
| | | warranty. In no event will the authors be held liable for any damages |
| | |
| | | #ifdef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH |
| | | |
| | | #include "SDL_log.h" |
| | | #include "SDL_mouse.h" |
| | | #include "SDL_keyboard.h" |
| | | #include "SDL_waylandtouch.h" |
| | | #include "../../events/SDL_touch_c.h" |
| | | |
| | |
| | | uint32_t capabilities = flags >> 16; |
| | | */ |
| | | |
| | | SDL_Window* window = NULL; |
| | | |
| | | SDL_TouchID deviceId = 1; |
| | | if (SDL_AddTouch(deviceId, "qt_touch_extension") < 0) { |
| | | if (SDL_AddTouch(deviceId, SDL_TOUCH_DEVICE_DIRECT, "qt_touch_extension") < 0) { |
| | | SDL_Log("error: can't add touch %s, %d", __FILE__, __LINE__); |
| | | } |
| | | |
| | | /* FIXME: This should be the window the given wayland surface is associated |
| | | * with, but how do we get the wayland surface? */ |
| | | window = SDL_GetMouseFocus(); |
| | | if (window == NULL) { |
| | | window = SDL_GetKeyboardFocus(); |
| | | } |
| | | |
| | | switch (touchState) { |
| | | case QtWaylandTouchPointPressed: |
| | | case QtWaylandTouchPointReleased: |
| | | SDL_SendTouch(deviceId, (SDL_FingerID)id, |
| | | SDL_SendTouch(deviceId, (SDL_FingerID)id, window, |
| | | (touchState == QtWaylandTouchPointPressed) ? SDL_TRUE : SDL_FALSE, |
| | | xf, yf, pressuref); |
| | | break; |
| | | case QtWaylandTouchPointMoved: |
| | | SDL_SendTouchMotion(deviceId, (SDL_FingerID)id, xf, yf, pressuref); |
| | | SDL_SendTouchMotion(deviceId, (SDL_FingerID)id, window, xf, yf, pressuref); |
| | | break; |
| | | default: |
| | | /* Should not happen */ |
| | |
| | | /* wayland-qt-windowmanager.c ENDS */ |
| | | |
| | | /* wayland-qt-surface-extension.c BEGINS */ |
| | | extern const struct wl_interface qt_extended_surface_interface; |
| | | #ifndef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC |
| | | extern const struct wl_interface wl_surface_interface; |
| | | #endif |