server: Map update region to children even if window just moved.

Alexandre Julliard julliard at winehq.org
Wed May 1 12:27:14 CDT 2013


Sergey Guralnik <serhio at etersoft.ru> writes:

> @@ -1618,7 +1618,7 @@ static void set_window_pos( struct window *win, struct window *previous,
>      const rectangle_t old_visible_rect = win->visible_rect;
>      const rectangle_t old_client_rect = win->client_rect;
>      rectangle_t rect;
> -    int client_changed, frame_changed;
> +    int client_changed, frame_changed, frame_moved = 0;
>      int visible = (win->style & WS_VISIBLE) || (swp_flags & SWP_SHOWWINDOW);
>  
>      if (win->parent && !is_visible( win->parent )) visible = 0;
> @@ -1727,9 +1727,10 @@ static void set_window_pos( struct window *win, struct window *previous,
>                            client_rect->bottom - old_client_rect.bottom != y_offset ||
>                            !valid_rects ||
>                            memcmp( &valid_rects[0], client_rect, sizeof(*client_rect) ));
> +        frame_moved = x_offset || y_offset;
>      }
>  
> -    if (frame_changed || client_changed)
> +    if (frame_changed || client_changed || frame_moved)

It doesn't make sense to have all these complicated tests if we are
going to always repaint anyway, which is essentially what your patch
does. There has to be more to it than that.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list