diff --git a/docs/labwc-config.5.scd b/docs/labwc-config.5.scd index 71b6867b..0307b0e1 100644 --- a/docs/labwc-config.5.scd +++ b/docs/labwc-config.5.scd @@ -525,7 +525,10 @@ extending outward from the snapped edge. Should drop-shadows be rendered behind windows. Default is no. ** [yes|no] - Should drop-shadows be rendered behind tiled windows. Default is no. + Should drop-shadows be rendered behind tiled windows. This won't take + effect if is smaller than window.active.shadow.size in theme. + + Default is no. ** The font to use for a specific element of a window, menu or OSD. diff --git a/src/ssd/ssd-shadow.c b/src/ssd/ssd-shadow.c index 09b8acb9..b77169b7 100644 --- a/src/ssd/ssd-shadow.c +++ b/src/ssd/ssd-shadow.c @@ -289,10 +289,19 @@ ssd_shadow_update(struct ssd *ssd) assert(ssd->shadow.tree); struct view *view = ssd->view; + struct theme *theme = ssd->view->server->theme; bool maximized = view->maximized == VIEW_AXIS_BOTH; - bool show_shadows = - rc.shadows_enabled && !maximized && - (!view_is_tiled(ssd->view) || rc.shadows_on_tiled); + bool tiled_shadows = false; + if (rc.shadows_on_tiled) { + if (rc.gap >= theme->window[THEME_ACTIVE].shadow_size && + rc.gap >= theme->window[THEME_INACTIVE].shadow_size) { + tiled_shadows = true; + } else { + wlr_log(WLR_INFO, "gap size < shadow_size, ignore rc.shadows_ontiled"); + } + }; + bool show_shadows = rc.shadows_enabled && !maximized && + (!view_is_tiled(ssd->view) || tiled_shadows); wlr_scene_node_set_enabled(&ssd->shadow.tree->node, show_shadows); if (show_shadows) { set_shadow_geometry(ssd);