DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 402254e469ec6b00a1595d3b14c758aec9b70b10
parent b79311a0b373301a399370762d0c70f9938a5487
Author: falkTX <falktx@falktx.com>
Date:   Sun, 10 Oct 2021 13:56:00 +0100

Fix nano subwidgets getting double offset

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
Mdgl/src/WidgetPrivateData.cpp | 33++++++++++++---------------------
1 file changed, 12 insertions(+), 21 deletions(-)

diff --git a/dgl/src/WidgetPrivateData.cpp b/dgl/src/WidgetPrivateData.cpp @@ -112,18 +112,15 @@ bool Widget::PrivateData::giveMouseEventForSubWidgets(MouseEvent& ev) if (subWidgets.size() == 0) return false; - double x = ev.absolutePos.getX(); - double y = ev.absolutePos.getY(); + const double x = ev.absolutePos.getX(); + const double y = ev.absolutePos.getY(); if (SubWidget* const selfw = dynamic_cast<SubWidget*>(self)) { if (selfw->pData->needsViewportScaling) { - x -= selfw->getAbsoluteX(); - y -= selfw->getAbsoluteY(); - - ev.absolutePos.setX(x); - ev.absolutePos.setY(y); + ev.absolutePos.setX(x - selfw->getAbsoluteX()); + ev.absolutePos.setY(y - selfw->getAbsoluteY()); } } @@ -151,18 +148,15 @@ bool Widget::PrivateData::giveMotionEventForSubWidgets(MotionEvent& ev) if (subWidgets.size() == 0) return false; - double x = ev.absolutePos.getX(); - double y = ev.absolutePos.getY(); + const double x = ev.absolutePos.getX(); + const double y = ev.absolutePos.getY(); if (SubWidget* const selfw = dynamic_cast<SubWidget*>(self)) { if (selfw->pData->needsViewportScaling) { - x -= selfw->getAbsoluteX(); - y -= selfw->getAbsoluteY(); - - ev.absolutePos.setX(x); - ev.absolutePos.setY(y); + ev.absolutePos.setX(x - selfw->getAbsoluteX()); + ev.absolutePos.setY(y - selfw->getAbsoluteY()); } } @@ -190,18 +184,15 @@ bool Widget::PrivateData::giveScrollEventForSubWidgets(ScrollEvent& ev) if (subWidgets.size() == 0) return false; - double x = ev.absolutePos.getX(); - double y = ev.absolutePos.getY(); + const double x = ev.absolutePos.getX(); + const double y = ev.absolutePos.getY(); if (SubWidget* const selfw = dynamic_cast<SubWidget*>(self)) { if (selfw->pData->needsViewportScaling) { - x -= selfw->getAbsoluteX(); - y -= selfw->getAbsoluteY(); - - ev.absolutePos.setX(x); - ev.absolutePos.setY(y); + ev.absolutePos.setX(x - selfw->getAbsoluteX()); + ev.absolutePos.setY(y - selfw->getAbsoluteY()); } }