Alexandre Julliard : winex11: Don'
t set the cursor on the desktop window since it'
s managed by another process.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Aug 20 07:42:44 CDT 2007
Module: wine
Branch: master
Commit: f3ae5f5215011db6095bc64d5028993cf4e0c5da
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f3ae5f5215011db6095bc64d5028993cf4e0c5da
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Aug 20 14:04:53 2007 +0200
winex11: Don't set the cursor on the desktop window since it's managed by another process.
---
dlls/winex11.drv/mouse.c | 41 ++++++++++++-----------------------------
1 files changed, 12 insertions(+), 29 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index 6ece664..86dad89 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -879,6 +879,7 @@ static Cursor create_cursor( Display *display, CURSORICONINFO *ptr )
*/
void X11DRV_SetCursor( CURSORICONINFO *lpCursor )
{
+ struct x11drv_thread_data *data = x11drv_thread_data();
Cursor cursor;
if (lpCursor)
@@ -887,40 +888,22 @@ void X11DRV_SetCursor( CURSORICONINFO *lpCursor )
else
TRACE("NULL\n");
- if (root_window != DefaultRootWindow(gdi_display))
- {
- /* If in desktop mode, set the cursor on the desktop window */
+ /* set the same cursor for all top-level windows of the current thread */
- wine_tsx11_lock();
- cursor = create_cursor( gdi_display, lpCursor );
- if (cursor)
- {
- XDefineCursor( gdi_display, root_window, cursor );
- /* Make the change take effect immediately */
- XFlush(gdi_display);
- XFreeCursor( gdi_display, cursor );
- }
- wine_tsx11_unlock();
- }
- else /* set the same cursor for all top-level windows of the current thread */
+ wine_tsx11_lock();
+ cursor = create_cursor( data->display, lpCursor );
+ if (cursor)
{
- struct x11drv_thread_data *data = x11drv_thread_data();
-
- wine_tsx11_lock();
- cursor = create_cursor( data->display, lpCursor );
- if (cursor)
+ if (data->cursor) XFreeCursor( data->display, data->cursor );
+ data->cursor = cursor;
+ if (data->cursor_window)
{
- if (data->cursor) XFreeCursor( data->display, data->cursor );
- data->cursor = cursor;
- if (data->cursor_window)
- {
- XDefineCursor( data->display, data->cursor_window, cursor );
- /* Make the change take effect immediately */
- XFlush( data->display );
- }
+ XDefineCursor( data->display, data->cursor_window, cursor );
+ /* Make the change take effect immediately */
+ XFlush( data->display );
}
- wine_tsx11_unlock();
}
+ wine_tsx11_unlock();
}
/***********************************************************************
More information about the wine-cvs
mailing list