Skip to content

Commit

Permalink
x11: Normalize x11xinput2 touch x to be 1.0 at width (thanks, Zach!).
Browse files Browse the repository at this point in the history
"Applications (such as SDL's testgesture) do "event.tfinger.x * window_width"
to find window coord. Currently the X11 XInput2 backend expects application
to do "event.tfinger.x * (window_width-1)" instead.

X11 XInput2 touch events are normalized so x is 1.0 at "width - 1" but other
SDL backends appear to have x be 1.0 at "width". Same issue for touch event
y with regards to height."

Fixes Bugzilla #4183.
  • Loading branch information
icculus committed Jun 24, 2018
1 parent fe68282 commit 59574fe
Showing 1 changed file with 2 additions and 10 deletions.
12 changes: 2 additions & 10 deletions src/video/x11/SDL_x11xinput2.c
Expand Up @@ -83,16 +83,8 @@ xinput2_normalize_touch_coordinates(SDL_VideoData *videodata, Window window,
for (i = 0; i < videodata->numwindows; i++) {
SDL_WindowData *d = videodata->windowlist[i];
if (d->xwindow == window) {
if (d->window->w == 1) {
*out_x = 0.5f;
} else {
*out_x = in_x / (d->window->w - 1);
}
if (d->window->h == 1) {
*out_y = 0.5f;
} else {
*out_y = in_y / (d->window->h - 1);
}
*out_x = in_x / d->window->w;
*out_y = in_y / d->window->h;
return;
}
}
Expand Down

0 comments on commit 59574fe

Please sign in to comment.