Red Hat Bugzilla – Bug 998529
Mouse pointer appears black on PuTTY terminals opened from windows 7 guests
Last modified: 2013-11-21 03:00:36 EST
Description of problem: On PuTTY sessions the mouse pointer appears black when opened from a windows 7 guest connected via spice. the issue is described more deeply here: http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/black-pointer.html and arises also when connecting via rdesktop (see http://osdir.com/ml/network.rdesktop.user/2005-03/msg00012.html) but it does not arise when connecting via MSTSC or via freeRDP. Workaround: The I-beam mouse pointer that PuTTY uses is not rendered the same in rdesktop as it is in the Windows Remote Desktop client. The workaround is to change the "Text Select" pointer on the Windows machine by going to Control Panel->Mouse->Pointers. I changed it to the beam_r.cur image, which is a beefier version of the I-beam bitmap which does render nicely in rdesktop. Version-Release number of selected component (if applicable): All versions How reproducible: 100% Steps to Reproduce: 1. open putty terminal in in Win7 guest accessed cia spice Actual results: Cursor is black Expected results: Cursor is white Additional info:
spicec shows the cursor correctly, so it isn't a server/driver problem, but a client problem. That gives me the right part of the code to look at.
So, I found the code in question, spicec does something it itself calls a hack. The situation is like this: guest sets a mono cursor. A mono cursor consists of two masks: a and mask and a xor mask. The problem is what to do when both xor and and masks are on. The current behavior of spice-gtk is wrong - it ignores the xor: http://cgit.freedesktop.org/spice/spice-gtk/tree/gtk/channel-cursor.c#n262 But spicec behavior is also wrong, it doesn't actually invert, it simply sets a different color so it acheives some contrast and avoids the putty symptom: http://cgit.freedesktop.org/spice/spice/tree/client/x11/platform.cpp#n3549 http://cgit.freedesktop.org/spice/spice/tree/client/x11/platform.cpp#n3499 So possible solutions: * copy the hack. easy, not very good. fixes regression. * figure out how to do a real invert in the cursor. Marc-Andre, any idea how to do that? can we do that with X? Alon
(In reply to Alon Levy from comment #4) > So possible solutions: > * copy the hack. easy, not very good. fixes regression. > * figure out how to do a real invert in the cursor. Marc-Andre, any idea how > to do that? can we do that with X? Apparently it is not supported by Gtk, so I would go with the hack.
Patches pushed upstream.
in rhel 6.5 the problem will be solved for the rhel client. If you are interested in win client, then the similar bug should opens for ming-virt-viewer in rhevm
(In reply to David Blechter from comment #8) > in rhel 6.5 the problem will be solved for the rhel client. > If you are interested in win client, then the similar bug should opens for > ming-virt-viewer in rhevm Thanks David. I have opened Bug 1002697 to report this against mingw-virt-viewer.
Better fix this time, adding a edge around any invert only cursor to give it contrast on any background, dark or light.
Updating "Fixed in Version", -11 returns to using relro linkage (a security measure) and so fixes a rpmdiff test compared to 10, there is no other change.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-1577.html