Alexandre Julliard : winex11: Fix event coordinates mapping for the root window in the explorer process.

Alexandre Julliard julliard at winehq.org
Mon Dec 13 10:43:20 CST 2010


Module: wine
Branch: master
Commit: 10aa13a98e4346e8af5e95a20eaefec7223a8c76
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=10aa13a98e4346e8af5e95a20eaefec7223a8c76

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 13 12:42:47 2010 +0100

winex11: Fix event coordinates mapping for the root window in the explorer process.

---

 dlls/winex11.drv/event.c |    1 +
 dlls/winex11.drv/mouse.c |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 5447a40..be3033b 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -788,6 +788,7 @@ static void X11DRV_Expose( HWND hwnd, XEvent *xev )
 
         flags |= RDW_ALLCHILDREN;
     }
+    else OffsetRect( &rect, virtual_screen_rect.left, virtual_screen_rect.top );
 
     RedrawWindow( hwnd, &rect, 0, flags );
 }
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index 71b31cc..a763798 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -239,6 +239,11 @@ static HWND update_mouse_state( HWND hwnd, Window window, int x, int y, unsigned
         x += data->whole_rect.left - data->client_rect.left;
         y += data->whole_rect.top - data->client_rect.top;
     }
+    if (window == root_window)
+    {
+        x += virtual_screen_rect.left;
+        y += virtual_screen_rect.top;
+    }
     pt->x = x;
     pt->y = y;
     if (GetWindowLongW( data->hwnd, GWL_EXSTYLE ) & WS_EX_LAYOUTRTL)




More information about the wine-cvs mailing list