From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/window.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 352dc938b66..a82462e44e4 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -5161,6 +5161,7 @@ void destroy_thread_windows(void) HWND handle; HMENU menu; HMENU sys_menu; + struct opengl_drawable *opengl_drawable; struct window_surface *surface; struct destroy_entry *next; } *entry, *free_list = NULL; @@ -5187,6 +5188,7 @@ void destroy_thread_windows(void) list_move_tail( &vulkan_surfaces, &win->vulkan_surfaces ); if (!is_child) tmp.menu = (HMENU)win->wIDmenu; tmp.sys_menu = win->hSysMenu; + tmp.opengl_drawable = win->opengl_drawable; tmp.surface = win->surface; *entry = tmp;
@@ -5210,7 +5212,7 @@ void destroy_thread_windows(void) TRACE( "destroying %p\n", entry );
user_driver->pDestroyWindow( entry->handle ); - if (win->opengl_drawable) opengl_drawable_release( win->opengl_drawable ); + if (entry->opengl_drawable) opengl_drawable_release( entry->opengl_drawable );
NtUserDestroyMenu( entry->menu ); NtUserDestroyMenu( entry->sys_menu );