From: Rémi Bernon rbernon@codeweavers.com
An ancestor might have moved and we want to update any Win32 children window absolute position accordingly.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57370 --- dlls/winex11.drv/event.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index dec80c34631..d8f68689b31 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -210,10 +210,8 @@ static void host_window_send_configure_events( struct host_window *win, Display static BOOL host_window_filter_event( XEvent *event ) { struct host_window *win; - RECT old_rect;
if (!(win = get_host_window( event->xany.window, FALSE ))) return FALSE; - old_rect = win->rect;
switch (event->type) { @@ -234,6 +232,7 @@ static BOOL host_window_filter_event( XEvent *event ) OffsetRect( &win->rect, gravity->x - win->rect.left, gravity->y - win->rect.top ); if (win->parent) win->rect = host_window_configure_child( win->parent, win->window, win->rect, FALSE ); TRACE( "host window %p/%lx GravityNotify, rect %s\n", win, win->window, wine_dbgstr_rect(&win->rect) ); + host_window_send_configure_events( win, event->xany.display, event->xany.serial ); break; } case ConfigureNotify: @@ -242,13 +241,11 @@ static BOOL host_window_filter_event( XEvent *event ) SetRect( &win->rect, configure->x, configure->y, configure->x + configure->width, configure->y + configure->height ); if (win->parent) win->rect = host_window_configure_child( win->parent, win->window, win->rect, configure->send_event ); TRACE( "host window %p/%lx ConfigureNotify, rect %s\n", win, win->window, wine_dbgstr_rect(&win->rect) ); + host_window_send_configure_events( win, event->xany.display, event->xany.serial ); break; } }
- if (old_rect.left != win->rect.left || old_rect.top != win->rect.top) - host_window_send_configure_events( win, event->xany.display, event->xany.serial ); - return TRUE; }