Ken Thomases : winemac: Don't set a view's frame if the backend' s value hasn't changed.

Alexandre Julliard julliard at winehq.org
Wed Feb 1 15:26:10 CST 2017


Module: wine
Branch: master
Commit: 2a28e4d843ec5302f53a3168061fdf2ca30eb076
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2a28e4d843ec5302f53a3168061fdf2ca30eb076

Author: Ken Thomases <ken at codeweavers.com>
Date:   Wed Feb  1 10:12:31 2017 -0600

winemac: Don't set a view's frame if the backend's value hasn't changed.

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>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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-cvs mailing list