From eb28eec7b7138e44d1cab0c916338fc94d667359 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 31 Aug 2025 00:34:14 +0200 Subject: [PATCH] Fix some layout calculations missing padding Signed-off-by: falkTX --- dgl/src/Layout.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dgl/src/Layout.cpp b/dgl/src/Layout.cpp index 814ed849..9a58f183 100644 --- a/dgl/src/Layout.cpp +++ b/dgl/src/Layout.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho + * Copyright (C) 2012-2025 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this @@ -26,9 +26,11 @@ typedef std::list::iterator VerticalLayoutIterator; // -------------------------------------------------------------------------------------------------------------------- template<> // horizontal -uint Layout::setAbsolutePos(int x, const int y, const uint padding) +uint Layout::setAbsolutePos(int x, int y, const uint padding) { uint maxHeight = 0; + y += padding; + x += padding; for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) { @@ -43,9 +45,11 @@ uint Layout::setAbsolutePos(int x, const int y, const uint padding) } template<> // vertical -uint Layout::setAbsolutePos(const int x, int y, const uint padding) +uint Layout::setAbsolutePos(int x, int y, const uint padding) { uint maxWidth = 0; + y += padding; + x += padding; for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) { @@ -63,10 +67,10 @@ template<> // horizontal void Layout::setSize(const uint width, const uint padding) { uint maxHeight = 0; - uint nonFixedWidth = width; + uint nonFixedWidth = width - padding * 2; uint numDynamiclySizedWidgets = 0; - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) + for (SubWidgetWithSizeHintIterator it = widgets.begin(), end = widgets.end(); it != end; ++it) { SubWidgetWithSizeHint& s(*it); maxHeight = std::max(maxHeight, s.widget->getHeight()); @@ -96,7 +100,7 @@ template<> // vertical void Layout::setSize(const uint height, const uint padding) { uint biggestWidth = 0; - uint nonFixedHeight = height; + uint nonFixedHeight = height - padding * 2; uint numDynamiclySizedWidgets = 0; for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it)