From: Chris Wilson Date: Sun, 10 Nov 2013 10:34:06 +0000 (+0000) Subject: intel-virtual-output: Do not hide the cursor on the local/source display X-Git-Tag: 2.99.906~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b0771180dc9bb7276a473db5663f41b5929199b;p=platform%2Fupstream%2Fxf86-video-intel.git 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 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71439 Signed-off-by: Chris Wilson --- diff --git a/tools/virtual.c b/tools/virtual.c index 5452f45..48fe347 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); }