Module: Mesa Branch: 18.2 Commit: ec9175a804d8022fd474e1873867b5af224ace19 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ec9175a804d8022fd474e1873867b5af224ace19
Author: Axel Davy <[email protected]> Date: Sat Sep 15 21:32:53 2018 +0200 st/nine: Avoid redundant SetCursorPos calls For some applications SetCursorPosition is called when a cursor event is received. Our SetCursorPosition was always calling wine SetCursorPos which would trigger a cursor event. The infinite loop is avoided by not calling SetCursorPos when the position hasn't changed. Found thanks to wine tests. Fixes irresponsive GUI for some applications. Fixes: https://github.com/iXit/Mesa-3D/issues/173 Signed-off-by: Axel Davy <[email protected]> CC: <[email protected]> (cherry picked from commit dcfde02bb0f0b9fdd8d45a22540683fe0aaab9ec) --- src/gallium/state_trackers/nine/device9.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 150f5e3e05..61eb5d9a45 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -784,6 +784,10 @@ NineDevice9_SetCursorPosition( struct NineDevice9 *This, DBG("This=%p X=%d Y=%d Flags=%d\n", This, X, Y, Flags); + if (This->cursor.pos.x == X && + This->cursor.pos.y == Y) + return; + This->cursor.pos.x = X; This->cursor.pos.y = Y; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
