Commit f40b0458 authored by Alexandre Julliard's avatar Alexandre Julliard

winex11: Avoid useless updates of the desktop window Z-order.

parent 9454e3ff
...@@ -68,7 +68,7 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev ) ...@@ -68,7 +68,7 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev )
XExposeEvent *event = &xev->xexpose; XExposeEvent *event = &xev->xexpose;
RECT rect; RECT rect;
struct x11drv_win_data *data; struct x11drv_win_data *data;
int flags = RDW_INVALIDATE | RDW_ERASE | RDW_ALLCHILDREN; int flags = RDW_INVALIDATE | RDW_ERASE;
TRACE( "win %p (%lx) %d,%d %dx%d\n", TRACE( "win %p (%lx) %d,%d %dx%d\n",
hwnd, event->window, event->x, event->y, event->width, event->height ); hwnd, event->window, event->x, event->y, event->width, event->height );
...@@ -89,9 +89,8 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev ) ...@@ -89,9 +89,8 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev )
rect.right = rect.left + event->width; rect.right = rect.left + event->width;
rect.bottom = rect.top + event->height; rect.bottom = rect.top + event->height;
if (event->window == root_window) if (event->window != root_window)
OffsetRect( &rect, virtual_screen_rect.left, virtual_screen_rect.top ); {
SERVER_START_REQ( update_window_zorder ) SERVER_START_REQ( update_window_zorder )
{ {
req->window = hwnd; req->window = hwnd;
...@@ -105,6 +104,9 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev ) ...@@ -105,6 +104,9 @@ void X11DRV_Expose( HWND hwnd, XEvent *xev )
/* make position relative to client area instead of parent */ /* make position relative to client area instead of parent */
OffsetRect( &rect, -data->client_rect.left, -data->client_rect.top ); OffsetRect( &rect, -data->client_rect.left, -data->client_rect.top );
flags |= RDW_ALLCHILDREN;
}
RedrawWindow( hwnd, &rect, 0, flags ); RedrawWindow( hwnd, &rect, 0, flags );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment