Fix touch coordinates on rotated display
The touch coordinates were not rotated.
This commit is contained in:
parent
94a7f1a0f8
commit
14ead499fd
1 changed files with 3 additions and 5 deletions
|
@ -515,13 +515,11 @@ convert_touch(const SDL_TouchFingerEvent *from, struct screen *screen,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct size frame_size = screen->frame_size;
|
|
||||||
|
|
||||||
to->inject_touch_event.pointer_id = from->fingerId;
|
to->inject_touch_event.pointer_id = from->fingerId;
|
||||||
to->inject_touch_event.position.screen_size = frame_size;
|
to->inject_touch_event.position.screen_size = screen->frame_size;
|
||||||
// SDL touch event coordinates are normalized in the range [0; 1]
|
// SDL touch event coordinates are normalized in the range [0; 1]
|
||||||
float x = from->x * frame_size.width;
|
float x = from->x * screen->content_size.width;
|
||||||
float y = from->y * frame_size.height;
|
float y = from->y * screen->content_size.height;
|
||||||
to->inject_touch_event.position.point = rotate_position(screen, x, y);
|
to->inject_touch_event.position.point = rotate_position(screen, x, y);
|
||||||
to->inject_touch_event.pressure = from->pressure;
|
to->inject_touch_event.pressure = from->pressure;
|
||||||
to->inject_touch_event.buttons = 0;
|
to->inject_touch_event.buttons = 0;
|
||||||
|
|
Loading…
Reference in a new issue