From: Brendan Shanks bshanks@codeweavers.com
--- dlls/winemac.drv/opengl.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c index 172b0d60226..1fff143ac29 100644 --- a/dlls/winemac.drv/opengl.c +++ b/dlls/winemac.drv/opengl.c @@ -2953,6 +2953,27 @@ static void macdrv_client_surface_update(struct client_surface *client) { TRACE("GL view %p changed position; marking contexts\n", data->client_cocoa_view); mark_contexts_for_moved_view(data->client_cocoa_view); + + { + struct macdrv_context *context; + + pthread_mutex_lock(&context_mutex); + LIST_FOR_EACH_ENTRY(context, &context_list, struct macdrv_context, entry) + { + if (context->draw_view == data->client_cocoa_view) + { + RECT rect; + NtUserGetClientRect(context->draw_hwnd, &rect, NtUserGetDpiForWindow(context->draw_hwnd)); + if (!EqualRect(&context->draw_rect_win_dpi, &rect)) + { + ERR("GL view %p context %p rect %s -> %s\n", data->client_cocoa_view, context, wine_dbgstr_rect(&context->draw_rect_win_dpi), wine_dbgstr_rect(&rect)); + //context->draw_rect_win_dpi = rect; + make_context_current(context, FALSE); + } + } + } + pthread_mutex_unlock(&context_mutex); + } }
release_win_data(data);