[Bug 881] Mouse cursor not blanked

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Feb 9 07:29:26 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=881





--- Comment #52 from Eli <sharparrow1 at yahoo.com>  2008-02-09 07:29:25 ---
Okay, so I actually tried looking at this closely, and it's actually a pretty
tricky issue (although probably easy to solve for anyone who has touched the
relevant code before). The issue is that whatever the initial cursor happens to
be, that initial cursor needs to be communicated to the driver.

The x11 driver's initial cursor is a cursor which does not correspond to *any*
of the builtin cursors in wine's user32.  Therefore, no matter what the default
is,   winex11 needs to be told sometime after initialization what the currect
cursor is.  Currently, winex11 doesn't get any information until some
application sets its cursor; since 99% of applications do set their cursor to
something non-null soon after window creation, the issue isn't normally
visible.

Therefore, to get this correct in general, either every thread needs to tell
the driver its default cursor on creation, or both user32 and the driver need
to have the same default cursor.  I'm having a bit of trouble figuring out what
would be the best approach, though.

gbrammer's patch works around this issue by forcing SetCursor(NULL) to always
communicate with x11drv, so despite the fact that wine thinks that there is no
cursor, the SetCursor call still does the right thing.

Side notes:
IDC_WAIT would be the Windows-compatible default cursor; if we're going to go
to the trouble of fixing this, we should probably match the Windows default.

The default winex11 arrow cursor on my computer is the gnome arrow cursor; it's
a bit different from the wine arrow cursor in that it has a shadow and the stem
is a bit shorter.  It would be nice if Wine used the same arrow, but that's a
separate issue.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list