From 72e6801f083ec4a175f96a65b62d41678d206b67 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 22 Sep 2025 21:14:40 +0100 Subject: [PATCH] text: make wrap and ellipsize passed --- include/hyprgraphics/resource/resources/TextResource.hpp | 2 ++ src/resource/resources/TextResource.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/hyprgraphics/resource/resources/TextResource.hpp b/include/hyprgraphics/resource/resources/TextResource.hpp index f3ac66e..c4913fa 100644 --- a/include/hyprgraphics/resource/resources/TextResource.hpp +++ b/include/hyprgraphics/resource/resources/TextResource.hpp @@ -27,6 +27,8 @@ namespace Hyprgraphics { std::optional maxSize = std::nullopt; cairo_antialias_t antialias = CAIRO_ANTIALIAS_GOOD; cairo_hint_style_t hintStyle = CAIRO_HINT_STYLE_SLIGHT; + bool ellipsize = false; + bool wrap = true; }; CTextResource(STextResourceData&& data); diff --git a/src/resource/resources/TextResource.cpp b/src/resource/resources/TextResource.cpp index cdbc869..c7059c8 100644 --- a/src/resource/resources/TextResource.cpp +++ b/src/resource/resources/TextResource.cpp @@ -66,13 +66,14 @@ void CTextResource::render() { if (m_data.maxSize) { layoutWidth = m_data.maxSize->x > 0 ? std::min(layoutWidth, sc(m_data.maxSize->x * PANGO_SCALE)) : layoutWidth; layoutHeight = m_data.maxSize->y > 0 ? std::min(layoutHeight, sc(m_data.maxSize->y * PANGO_SCALE)) : layoutHeight; - pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); + if (m_data.ellipsize) + pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); if (m_data.maxSize->x >= 0) pango_layout_set_width(layout, layoutWidth); if (m_data.maxSize->y >= 0) pango_layout_set_height(layout, layoutHeight); - - pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR); + if (m_data.wrap) + pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR); } // TODO: avoid this?