From 58f4b26134b25ec9a5752d4f054775f7256a7ed8 Mon Sep 17 00:00:00 2001 From: VelocityRa Date: Sun, 17 Jun 2018 19:50:27 +0300 Subject: [PATCH] overlays: Consider padding when auto-resizing label elements - Also make auto_resize return whether it changed the size --- rpcs3/Emu/RSX/Overlays/overlay_controls.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_controls.h b/rpcs3/Emu/RSX/Overlays/overlay_controls.h index b81c0af894..e2ae4bbdc9 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_controls.h +++ b/rpcs3/Emu/RSX/Overlays/overlay_controls.h @@ -1290,11 +1290,15 @@ namespace rsx this->text = text; } - void auto_resize(bool grow_only = false, u16 limit_w = UINT16_MAX, u16 limit_h = UINT16_MAX) + bool auto_resize(bool grow_only = false, u16 limit_w = UINT16_MAX, u16 limit_h = UINT16_MAX) { u16 new_width, new_height; + u16 old_width = w, old_height = h; measure_text(new_width, new_height, true); + new_width += padding_left + padding_right; + new_height += padding_top + padding_bottom; + if (new_width > limit_w && wrap_text) measure_text(new_width, new_height, false); @@ -1306,6 +1310,9 @@ namespace rsx w = std::min(new_width, limit_w); h = std::min(new_height, limit_h); + + bool size_changed = old_width != new_width || old_height != new_height; + return size_changed; } };