From dbba1311b7f957aea0296a8dc8098b65476ed6b4 Mon Sep 17 00:00:00 2001 From: emersion Date: Tue, 15 May 2018 18:13:26 +0100 Subject: [PATCH] output: fix lingering hardware cursors --- types/wlr_output.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/types/wlr_output.c b/types/wlr_output.c index 350538a7..a0f27e51 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -706,11 +706,11 @@ static bool output_cursor_attempt_hardware(struct wlr_output_cursor *cursor) { struct wlr_output_cursor *hwcur = cursor->output->hardware_cursor; if (cursor->output->impl->set_cursor && (hwcur == NULL || hwcur == cursor)) { - if (hwcur != cursor) { - assert(cursor->output->impl->move_cursor); - cursor->output->impl->move_cursor(cursor->output, - (int)cursor->x, (int)cursor->y); - } + // If the cursor was hidden or was a software cursor, the hardware + // cursor position is outdated + assert(cursor->output->impl->move_cursor); + cursor->output->impl->move_cursor(cursor->output, + (int)cursor->x, (int)cursor->y); if (cursor->output->impl->set_cursor(cursor->output, texture, scale, transform, cursor->hotspot_x, cursor->hotspot_y, true)) { cursor->output->hardware_cursor = cursor;