From 5e9edfea73cdedbe6152cf4affa95db712562f59 Mon Sep 17 00:00:00 2001 From: Paddle Date: Mon, 6 Nov 2023 10:52:22 +0100 Subject: [PATCH] EditableDatumLabel : prevent spinbox from going out of the view. --- src/Gui/EditableDatumLabel.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Gui/EditableDatumLabel.cpp b/src/Gui/EditableDatumLabel.cpp index a653d140e0..f005745d46 100644 --- a/src/Gui/EditableDatumLabel.cpp +++ b/src/Gui/EditableDatumLabel.cpp @@ -240,9 +240,12 @@ void EditableDatumLabel::positionSpinbox() } QSize wSize = spinBox->size(); + QSize vSize = viewer->size(); QPoint pxCoord = viewer->toQPoint(viewer->getPointOnViewport(getTextCenterPoint())); - pxCoord.setX(std::max(pxCoord.x() - wSize.width() / 2, 0)); - pxCoord.setY(std::max(pxCoord.y() - wSize.height() / 2, 0)); + int posX = std::min(std::max(pxCoord.x() - wSize.width() / 2, 0), vSize.width() - wSize.width()); + int posY = std::min(std::max(pxCoord.y() - wSize.height() / 2, 0), vSize.height() - wSize.height()); + pxCoord.setX(posX); + pxCoord.setY(posY); spinBox->move(pxCoord); }