From d99674833cb5897f2ef1f1929cbc8defcda5a604 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 6 Mar 2009 21:17:12 +0000 Subject: [PATCH] fix lookaround task for linux --- panda/src/glxdisplay/glxGraphicsWindow.cxx | 7 +++++-- panda/src/tinydisplay/tinyXGraphicsWindow.cxx | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/panda/src/glxdisplay/glxGraphicsWindow.cxx b/panda/src/glxdisplay/glxGraphicsWindow.cxx index 575e528e93..4539b7a725 100644 --- a/panda/src/glxdisplay/glxGraphicsWindow.cxx +++ b/panda/src/glxdisplay/glxGraphicsWindow.cxx @@ -111,8 +111,11 @@ move_pointer(int device, int x, int y) { return false; } - XWarpPointer(_display, None, _xwindow, 0, 0, 0, 0, x, y); - _input_devices[0].set_pointer_in_window(x, y); + const MouseData &md = _input_devices[0].get_pointer(); + if (!md.get_in_window() || md.get_x() != x || md.get_y() != y) { + XWarpPointer(_display, None, _xwindow, 0, 0, 0, 0, x, y); + _input_devices[0].set_pointer_in_window(x, y); + } return true; } else { // Move a raw mouse. diff --git a/panda/src/tinydisplay/tinyXGraphicsWindow.cxx b/panda/src/tinydisplay/tinyXGraphicsWindow.cxx index 1c821d2618..961741989c 100644 --- a/panda/src/tinydisplay/tinyXGraphicsWindow.cxx +++ b/panda/src/tinydisplay/tinyXGraphicsWindow.cxx @@ -120,8 +120,11 @@ move_pointer(int device, int x, int y) { return false; } - XWarpPointer(_display, None, _xwindow, 0, 0, 0, 0, x, y); - _input_devices[0].set_pointer_in_window(x, y); + const MouseData &md = _input_devices[0].get_pointer(); + if (!md.get_in_window() || md.get_x() != x || md.get_y() != y) { + XWarpPointer(_display, None, _xwindow, 0, 0, 0, 0, x, y); + _input_devices[0].set_pointer_in_window(x, y); + } return true; } else { // Move a raw mouse.