diff options
Diffstat (limited to 'tinywl')
| -rw-r--r-- | tinywl/tinywl.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/tinywl/tinywl.c b/tinywl/tinywl.c index d4f4e7f..f6e1254 100644 --- a/tinywl/tinywl.c +++ b/tinywl/tinywl.c @@ -613,8 +613,14 @@ static void output_configure_scene(struct wlr_scene_node *node,  		struct wlr_scene_surface * scene_surface  			= wlr_scene_surface_from_buffer(buffer); -		struct wlr_xdg_surface *xdg_surface = -			wlr_xdg_surface_from_wlr_surface(scene_surface->surface); +		if (!scene_surface) { +			return; +		} + +		struct wlr_xdg_surface *xdg_surface = NULL; +		if (wlr_surface_is_xdg_surface(scene_surface->surface)) { +			xdg_surface = wlr_xdg_surface_from_wlr_surface(scene_surface->surface); +		}  		if (xdg_surface &&  				xdg_surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) {  | 
