diff --git a/src/deco-subsurface.cpp b/src/deco-subsurface.cpp index f626204..8eb57e9 100644 --- a/src/deco-subsurface.cpp +++ b/src/deco-subsurface.cpp @@ -263,7 +263,12 @@ class simple_decoration_node_t : public wf::scene::node_t, public wf::pointer_in const double x = local.x - shadow, y = local.y - shadow; const double dx = std::max({radius - x, 0.0, x - (w - radius)}); const double dy = std::max({radius - y, 0.0, y - (h - radius)}); - if (dx > 0 && dy > 0 && dx * dx + dy * dy > radius * radius) + // Keep the corner resize handles (where the layout's edge + // handles overlap, see calculate_resize_edges()) hittable. + const double handle = theme.get_input_size(); + const bool corner_handle = std::min(x, w - x) < handle && + std::min(y, h - y) < handle; + if (!corner_handle && dx > 0 && dy > 0 && dx * dx + dy * dy > radius * radius) { return {}; }