diff options
Diffstat (limited to 'src/lib/ecore_drm/ecore_drm_device.c')
-rw-r--r-- | src/lib/ecore_drm/ecore_drm_device.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index 16a7843cd6..95117d2b9d 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c | |||
@@ -509,6 +509,30 @@ ecore_drm_device_pointer_xy_get(Ecore_Drm_Device *dev, int *x, int *y) | |||
509 | } | 509 | } |
510 | } | 510 | } |
511 | 511 | ||
512 | EAPI void | ||
513 | ecore_drm_device_pointer_warp(Ecore_Drm_Device *dev, int x, int y) | ||
514 | { | ||
515 | Ecore_Drm_Seat *seat; | ||
516 | Ecore_Drm_Evdev *edev; | ||
517 | Eina_List *l, *ll; | ||
518 | |||
519 | /* check for valid device */ | ||
520 | EINA_SAFETY_ON_TRUE_RETURN((!dev) || (dev->drm.fd < 0)); | ||
521 | EINA_LIST_FOREACH(dev->seats, l, seat) | ||
522 | { | ||
523 | EINA_LIST_FOREACH(seat->devices, ll, edev) | ||
524 | { | ||
525 | if (!libinput_device_has_capability(edev->device, | ||
526 | LIBINPUT_DEVICE_CAP_POINTER)) | ||
527 | continue; | ||
528 | |||
529 | seat->ptr.dx = seat->ptr.ix = x; | ||
530 | seat->ptr.dy = seat->ptr.iy = y; | ||
531 | _ecore_drm_pointer_motion_post(edev); | ||
532 | } | ||
533 | } | ||
534 | } | ||
535 | |||
512 | EAPI Eina_Bool | 536 | EAPI Eina_Bool |
513 | ecore_drm_device_software_setup(Ecore_Drm_Device *dev) | 537 | ecore_drm_device_software_setup(Ecore_Drm_Device *dev) |
514 | { | 538 | { |