xwayland: Move xwl_window disposal to its own function
No functional change intended, this is just preparation work for the next commit. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1589>
This commit is contained in:
		
							parent
							
								
									bc9bf56360
								
							
						
					
					
						commit
						74be7a7f36
					
				| 
						 | 
					@ -1643,28 +1643,14 @@ release_wl_surface_for_window(struct xwl_window *xwl_window)
 | 
				
			||||||
        release_wl_surface_for_window_legacy_delay(xwl_window);
 | 
					        release_wl_surface_for_window_legacy_delay(xwl_window);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Bool
 | 
					static void
 | 
				
			||||||
xwl_unrealize_window(WindowPtr window)
 | 
					xwl_window_dispose(struct xwl_window *xwl_window)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ScreenPtr screen = window->drawable.pScreen;
 | 
					    struct xwl_screen *xwl_screen = xwl_window->xwl_screen;
 | 
				
			||||||
    struct xwl_screen *xwl_screen;
 | 
					 | 
				
			||||||
    struct xwl_window *xwl_window;
 | 
					 | 
				
			||||||
    struct xwl_seat *xwl_seat;
 | 
					    struct xwl_seat *xwl_seat;
 | 
				
			||||||
    Bool ret;
 | 
					    WindowPtr window = xwl_window->toplevel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xwl_screen = xwl_screen_get(screen);
 | 
					    compUnredirectWindow(serverClient, window, CompositeRedirectManual);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    xwl_window = xwl_window_get(window);
 | 
					 | 
				
			||||||
    if (xwl_window)
 | 
					 | 
				
			||||||
        compUnredirectWindow(serverClient, window, CompositeRedirectManual);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    screen->UnrealizeWindow = xwl_screen->UnrealizeWindow;
 | 
					 | 
				
			||||||
    ret = (*screen->UnrealizeWindow) (window);
 | 
					 | 
				
			||||||
    xwl_screen->UnrealizeWindow = screen->UnrealizeWindow;
 | 
					 | 
				
			||||||
    screen->UnrealizeWindow = xwl_unrealize_window;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!xwl_window)
 | 
					 | 
				
			||||||
        return ret;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xorg_list_for_each_entry(xwl_seat, &xwl_screen->seat_list, link) {
 | 
					    xorg_list_for_each_entry(xwl_seat, &xwl_screen->seat_list, link) {
 | 
				
			||||||
        if (xwl_seat->focus_window == xwl_window)
 | 
					        if (xwl_seat->focus_window == xwl_window)
 | 
				
			||||||
| 
						 | 
					@ -1704,7 +1690,6 @@ xwl_unrealize_window(WindowPtr window)
 | 
				
			||||||
    release_wl_surface_for_window(xwl_window);
 | 
					    release_wl_surface_for_window(xwl_window);
 | 
				
			||||||
    xorg_list_del(&xwl_window->link_damage);
 | 
					    xorg_list_del(&xwl_window->link_damage);
 | 
				
			||||||
    xorg_list_del(&xwl_window->link_window);
 | 
					    xorg_list_del(&xwl_window->link_window);
 | 
				
			||||||
    unregister_damage(xwl_window);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xwl_window_buffers_dispose(xwl_window);
 | 
					    xwl_window_buffers_dispose(xwl_window);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1718,6 +1703,25 @@ xwl_unrealize_window(WindowPtr window)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    free(xwl_window);
 | 
					    free(xwl_window);
 | 
				
			||||||
    dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL);
 | 
					    dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bool
 | 
				
			||||||
 | 
					xwl_unrealize_window(WindowPtr window)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ScreenPtr screen = window->drawable.pScreen;
 | 
				
			||||||
 | 
					    struct xwl_screen *xwl_screen = xwl_screen_get(screen);
 | 
				
			||||||
 | 
					    struct xwl_window *xwl_window = xwl_window_get(window);
 | 
				
			||||||
 | 
					    Bool ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (xwl_window) {
 | 
				
			||||||
 | 
					        unregister_damage(xwl_window);
 | 
				
			||||||
 | 
					        xwl_window_dispose(xwl_window);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    screen->UnrealizeWindow = xwl_screen->UnrealizeWindow;
 | 
				
			||||||
 | 
					    ret = (*screen->UnrealizeWindow) (window);
 | 
				
			||||||
 | 
					    xwl_screen->UnrealizeWindow = screen->UnrealizeWindow;
 | 
				
			||||||
 | 
					    screen->UnrealizeWindow = xwl_unrealize_window;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue