@ -465,6 +465,9 @@ static void view_subsurface_create(struct sway_view *view,
static void view_init_subsurfaces ( struct sway_view * view ,
static void view_init_subsurfaces ( struct sway_view * view ,
struct wlr_surface * surface ) ;
struct wlr_surface * surface ) ;
static void view_child_init_subsurfaces ( struct sway_view_child * view_child ,
struct wlr_surface * surface ) ;
static void view_handle_surface_new_subsurface ( struct wl_listener * listener ,
static void view_handle_surface_new_subsurface ( struct wl_listener * listener ,
void * data ) {
void * data ) {
struct sway_view * view =
struct sway_view * view =
@ -1033,6 +1036,14 @@ static void view_init_subsurfaces(struct sway_view *view,
}
}
}
}
static void view_child_init_subsurfaces ( struct sway_view_child * view_child ,
struct wlr_surface * surface ) {
struct wlr_subsurface * subsurface ;
wl_list_for_each ( subsurface , & surface - > subsurfaces , parent_link ) {
view_child_subsurface_create ( view_child , subsurface ) ;
}
}
static void view_child_handle_surface_map ( struct wl_listener * listener ,
static void view_child_handle_surface_map ( struct wl_listener * listener ,
void * data ) {
void * data ) {
struct sway_view_child * child =
struct sway_view_child * child =
@ -1088,7 +1099,7 @@ void view_child_init(struct sway_view_child *child,
wlr_surface_send_enter ( child - > surface , workspace - > output - > wlr_output ) ;
wlr_surface_send_enter ( child - > surface , workspace - > output - > wlr_output ) ;
}
}
view_ init_subsurfaces( child - > view , surface ) ;
view_ child_ init_subsurfaces( child , surface ) ;
}
}
void view_child_destroy ( struct sway_view_child * child ) {
void view_child_destroy ( struct sway_view_child * child ) {