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)
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;
display_mark_flush(display);
display->cursor_moved = 0;
+ display->cursor_visible = 0;
}
static void clone_move_cursor(struct clone *c, int x, int y)