Sergey Guralnik serhio@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.