Skip to content

Commit

Permalink
Fixed bug 4707 - SDL_SetRelativeMouseMode fails on Vivante
Browse files Browse the repository at this point in the history
Cameron Gutman

The bugfix in https://hg.libsdl.org/SDL/rev/ca9417a52f18 caused SDL_SetRelativeMouseMode() to begin failing on Vivante (Steam Link). Even though Vivante doesn't have a SetRelativeMouseMode() or WarpMouse() function, it's in relative mode already (because it uses evdev) so the function was actually working as intended.

I think providing a no-op SetRelativeMouseMode() function for Vivante is a reasonable fix. Since it's already getting relative events through evdev, it really is a no-op to "enter relative mode".

In fact, this is probably the right thing to do for all backends that use evdev (vivante, raspberry, and kmsdrm). Raspberry and kmsdrm both have WarpMouse() implementations so SDL_SetRelativeMouseMode() isn't failing there, but it still seems to make sense not to have to do the fake warping if they're evdev-based anyway.
  • Loading branch information
slouken committed Jul 3, 2019
1 parent f994da0 commit 67bb882
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
Empty file modified Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj 100644 → 100755
Empty file.
10 changes: 10 additions & 0 deletions src/core/linux/SDL_evdev.c
Expand Up @@ -129,6 +129,14 @@ static Uint8 EVDEV_MouseButtons[] = {
SDL_BUTTON_X2 + 3 /* BTN_TASK 0x117 */
};

static int
SDL_EVDEV_SetRelativeMouseMode(SDL_bool enabled)
{
/* Mice already send relative events through this interface */
return 0;
}


int
SDL_EVDEV_Init(void)
{
Expand Down Expand Up @@ -162,6 +170,8 @@ SDL_EVDEV_Init(void)
_this->kbd = SDL_EVDEV_kbd_init();
}

SDL_GetMouse()->SetRelativeMouseMode = SDL_EVDEV_SetRelativeMouseMode;

_this->ref_count += 1;

return 0;
Expand Down

0 comments on commit 67bb882

Please sign in to comment.