[Spice-devel] Invisble cursor with f20

Marc-André Lureau mlureau at redhat.com
Tue Jul 1 11:39:48 PDT 2014


Hi list, hi Gerd!

I have been tracking the "invisible" cursor after monitor
resize bug, with drm/qxl driver & gnome3 guests.

It seems with gnome2 and windows, the cursor is restored
after resize by desktop.

With gnome3, there is no cursor update after resize, but still
some X code to restore the cursor after resize of the framebuffer.
However, the crtc config change comes after, and that will trigger
a primary surface recreation, which is associated with cursor reset.
When the primary surface is created, cursor init is sent with an
empty cursor, and the client hides the cursor.

There are several places in server and qemu where we could remove
the call to reset_cursor() when destroying the primary surface
(I am not sure why we did it tbh). That seems to solve the problem.

The other option would be to keep the current pointer on client
side, when cursor init happens (after resize). This works, but new
connected clients will still get an empty cursor, so hidden.

I guess we could use both approaches too, I don't see any major
drawback.

What do you think?

-- 
Marc-André Lureau



More information about the Spice-devel mailing list