xwayland: add xdg-toplevel listener
So that when running rootful, the compositor can close the Xwayland window using the xdg-toplevel protocol. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
		
							parent
							
								
									7a517f3967
								
							
						
					
					
						commit
						f31f059934
					
				| 
						 | 
				
			
			@ -540,6 +540,28 @@ static const struct wl_surface_listener surface_listener = {
 | 
			
		|||
    xwl_window_surface_leave
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
xdg_toplevel_handle_configure(void *data,
 | 
			
		||||
                              struct xdg_toplevel *xdg_toplevel,
 | 
			
		||||
                              int32_t width,
 | 
			
		||||
                              int32_t height,
 | 
			
		||||
                              struct wl_array *states)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
xdg_toplevel_handle_close(void *data,
 | 
			
		||||
                          struct xdg_toplevel *xdg_toplevel)
 | 
			
		||||
{
 | 
			
		||||
    DebugF("Terminating on compositor request");
 | 
			
		||||
    GiveUp(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct xdg_toplevel_listener xdg_toplevel_listener = {
 | 
			
		||||
    xdg_toplevel_handle_configure,
 | 
			
		||||
    xdg_toplevel_handle_close,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static Bool
 | 
			
		||||
xwl_create_root_surface(struct xwl_window *xwl_window)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -567,6 +589,10 @@ xwl_create_root_surface(struct xwl_window *xwl_window)
 | 
			
		|||
    xdg_surface_add_listener(xwl_window->xdg_surface,
 | 
			
		||||
                             &xdg_surface_listener, xwl_window);
 | 
			
		||||
 | 
			
		||||
    xdg_toplevel_add_listener(xwl_window->xdg_toplevel,
 | 
			
		||||
                              &xdg_toplevel_listener,
 | 
			
		||||
                              NULL);
 | 
			
		||||
 | 
			
		||||
    xwl_window_rootful_update_title(xwl_window);
 | 
			
		||||
 | 
			
		||||
    wl_surface_commit(xwl_window->surface);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue