[PATCH 3/3] winemac: Don't set a view's frame if the backend's value hasn't changed.

Ken Thomases ken at codeweavers.com
Wed Feb 1 10:12:31 CST 2017

With windows, the Cocoa main thread may have changed the frame and messages to
that effect may be in the queue, so it can be important to reassert the
"current" value and discard those messages.  With views, by contrast, Cocoa
will never change the frame on its own and there are no messages to discard.

Signed-off-by: Ken Thomases <ken at codeweavers.com>
 dlls/winemac.drv/window.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index 6e0926c..e07507b 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -1094,7 +1094,7 @@ static void sync_window_position(struct macdrv_win_data *data, UINT swp_flags, c
             macdrv_set_view_frame(data->cocoa_view, frame);
             force_z_order = TRUE;
-        else
+        else if (!EqualRect(&data->whole_rect, old_whole_rect))
             macdrv_set_view_frame(data->cocoa_view, frame);

More information about the wine-patches mailing list