summaryrefslogtreecommitdiff
path: root/tools/virtual.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-11-10 10:34:06 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-11-10 10:35:27 +0000
commit7b0771180dc9bb7276a473db5663f41b5929199b (patch)
treee0f96adcacc35c3d58a0b97dd6cb2e8ba99e2f18 /tools/virtual.c
parentb3b02a879bd6f29447e20fb5bb51c0a4a48a7928 (diff)
intel-virtual-output: Do not hide the cursor on the local/source display
Whilst we want to take over and hide the cursor on the remote displays, on the source we need to not interfere with the host. Reported-by: Jethro Beekman <freedesktop-bugs@jbeekman.nl> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71439 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tools/virtual.c')
-rw-r--r--tools/virtual.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/tools/virtual.c b/tools/virtual.c
index 5452f456..48fe3478 100644
--- a/tools/virtual.c
+++ b/tools/virtual.c
@@ -1136,6 +1136,8 @@ static void display_flush_cursor(struct display *display)
y = display->cursor_y++ & 31;
}
+ DBG(("%s setting cursor position (%d, %d), visible? %d\n",
+ DisplayString(c->dst.dpy), x, y, display->cursor_visible));
XWarpPointer(display->dpy, None, display->root, 0, 0, 0, 0, x, y);
cursor = None;
@@ -1680,6 +1682,7 @@ static int clone_init_depth(struct clone *clone)
static int add_display(struct context *ctx, Display *dpy)
{
struct display *display;
+ int first_display = ctx->ndisplay == 0;
if (is_power_of_2(ctx->ndisplay)) {
struct display *new_display;
@@ -1719,10 +1722,11 @@ static int add_display(struct context *ctx, Display *dpy)
if (XineramaQueryExtension(dpy, &display->xinerama_event, &display->xinerama_error))
display->xinerama_active = XineramaIsActive(dpy);
- display->invisible_cursor = display_load_invisible_cursor(display);
- display->cursor = None;
-
- display_cursor_move(display, 0, 0, 0);
+ /* first display (source) is slightly special */
+ if (!first_display) {
+ display->invisible_cursor = display_load_invisible_cursor(display);
+ display_cursor_move(display, 0, 0, 0);
+ }
return ConnectionNumber(dpy);
}