summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-11-22 17:37:57 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-11-22 17:40:10 +0000
commit12e974c7bc8c85dbccd3d9ef91c1315e85bbeb6c (patch)
tree882d833d083406097a5fc715d8eddeb02d98d4f8 /tools
parent0ee29c4ea3b05e9361635a2ef6e7b92c160d68cf (diff)
Revert "intel-virtual-output: Only track the most recent visibility status of the cursor"
This reverts commit abf1a16914d993cc150005879375d4bb17fdccf3. We need to track visibility over all clones on a display, not just the last. Regression from commit abf1a16914d993cc150005879375d4bb17fdccf3 [2.99.906] Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Nov 8 17:09:35 2013 +0000 intel-virtual-output: Only track the most recent visibility status of the curso Reported-by: Kirill Müller <mail@kirill-mueller.de> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71838 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tools')
-rw-r--r--tools/virtual.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/virtual.c b/tools/virtual.c
index 2d5a4e45..a02db68c 100644
--- a/tools/virtual.c
+++ b/tools/virtual.c
@@ -1182,8 +1182,10 @@ static void display_load_visible_cursor(struct display *display, XFixesCursorIma
DBG(("%s marking cursor changed\n", DisplayString(display->dpy)));
display->cursor_moved++;
- if (display->cursor != display->invisible_cursor)
+ if (display->cursor != display->invisible_cursor) {
+ display->cursor_visible++;
context_enable_timer(display->ctx);
+ }
}
static void display_cursor_move(struct display *display, int x, int y, int visible)
@@ -1191,7 +1193,7 @@ static void display_cursor_move(struct display *display, int x, int y, int visib
DBG(("%s cursor moved (visible=%d, (%d, %d))\n",
DisplayString(display->dpy), visible, x, y));
display->cursor_moved++;
- display->cursor_visible = visible;
+ display->cursor_visible += visible;
if (visible) {
display->cursor_x = x;
display->cursor_y = y;
@@ -1233,6 +1235,7 @@ static void display_flush_cursor(struct display *display)
display_mark_flush(display);
display->cursor_moved = 0;
+ display->cursor_visible = 0;
}
static void clone_move_cursor(struct clone *c, int x, int y)