From 0108e9f3874d0ab670c6a14bc9f296a63d14c798 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 9 Sep 2022 17:40:35 +0100 Subject: [PATCH] Change: Set up suggested widget padding for panel, frame and inset. Window handlers are free to ignore the suggested padding, however some handlers have logic that assumes this information was already provided. --- src/widget.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/widget.cpp b/src/widget.cpp index d1ff668b96..f5e0cb9f69 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -1977,7 +1977,14 @@ void NWidgetBackground::SetupSmallestSize(Window *w, bool init_array) d = maxdim(d, background); } if (this->index >= 0) { - static const Dimension padding = {0, 0}; + /* Setup suggested padding for widgets. */ + Dimension padding = {0, 0}; + switch (this->type) { + default: NOT_REACHED(); + case WWT_PANEL: padding = {WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM}; break; + case WWT_FRAME: padding = {WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT, WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM}; break; + case WWT_INSET: padding = {WD_INSET_LEFT + WD_INSET_RIGHT, WD_INSET_TOP + WD_BEVEL_BOTTOM}; break; + } w->UpdateWidgetSize(this->index, &d, padding, &fill, &resize); } }