diff --git a/src/app.cpp b/src/app.cpp index 2a32f4a..c9c8693 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -576,8 +576,10 @@ void App::update(float dt) { if (n && n->m_display) { - auto box = n->m_clip; + auto box = n->m_clip_uncut; Node* p = n->parent; + if (dynamic_cast(n)) + p = p; while (p) { float pt = YGNodeLayoutGetPadding(p->y_node, YGEdgeTop); @@ -586,7 +588,7 @@ void App::update(float dt) float pl = YGNodeLayoutGetPadding(p->y_node, YGEdgeLeft); glm::vec2 off_p(pl, pt); glm::vec2 off_s(pr, pb); - glm::vec4 pclip = { xy(p->m_clip) + off_p, zw(p->m_clip) - off_s - off_p }; + glm::vec4 pclip = { xy(p->m_clip_uncut) + off_p, zw(p->m_clip_uncut) - off_s - off_p }; box = rect_intersection(box, pclip); p = p->parent; }