From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winemac.drv/surface.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/dlls/winemac.drv/surface.c b/dlls/winemac.drv/surface.c index 83f6df62c80..c16acfe9905 100644 --- a/dlls/winemac.drv/surface.c +++ b/dlls/winemac.drv/surface.c @@ -191,29 +191,17 @@ failed: */ BOOL macdrv_CreateWindowSurface(HWND hwnd, const RECT *surface_rect, struct window_surface **surface) { + struct window_surface *previous; struct macdrv_win_data *data; TRACE("hwnd %p, surface_rect %s, surface %p\n", hwnd, wine_dbgstr_rect(surface_rect), surface); + if ((previous = *surface) && previous->funcs == &macdrv_surface_funcs) return TRUE; if (!(data = get_win_data(hwnd))) return TRUE; /* use default surface */ - - if (*surface) window_surface_release(*surface); - *surface = NULL; - - if (data->surface) - { - if (EqualRect(&data->surface->rect, surface_rect)) - { - /* existing surface is good enough */ - window_surface_add_ref(data->surface); - *surface = data->surface; - goto done; - } - } + if (previous) window_surface_release(previous); *surface = create_surface(data->hwnd, data->cocoa_window, surface_rect); -done: release_win_data(data); return TRUE; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6081