Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hyprtoolkit for openSUSE:Factory checked in at 2026-02-17 16:51:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyprtoolkit (Old) and /work/SRC/openSUSE:Factory/.hyprtoolkit.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyprtoolkit" Tue Feb 17 16:51:08 2026 rev:2 rq:1333457 version:0.5.3 Changes: -------- --- /work/SRC/openSUSE:Factory/hyprtoolkit/hyprtoolkit.changes 2026-01-09 17:06:13.430794207 +0100 +++ /work/SRC/openSUSE:Factory/.hyprtoolkit.new.1977/hyprtoolkit.changes 2026-02-17 16:52:49.237157945 +0100 @@ -1,0 +2,8 @@ +Mon Feb 16 22:31:17 UTC 2026 - Avindra Goolcharan <[email protected]> + +- update to 0.5.3: + * elements/text: fix a possible texture race that would result + in an empty texture asset + * config: add rounding_large and _small + +------------------------------------------------------------------- Old: ---- hyprtoolkit-v0.5.2.tar.gz New: ---- hyprtoolkit-v0.5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyprtoolkit.spec ++++++ --- /var/tmp/diff_new_pack.oDSKF8/_old 2026-02-17 16:52:50.653217130 +0100 +++ /var/tmp/diff_new_pack.oDSKF8/_new 2026-02-17 16:52:50.657217298 +0100 @@ -19,7 +19,7 @@ %define sover 5 %define libname lib%{name}%{sover} Name: hyprtoolkit -Version: 0.5.2 +Version: 0.5.3 Release: 0 Summary: A C++ GUI toolkit for native Wayland applications License: BSD-3-Clause ++++++ hyprtoolkit-v0.5.2.tar.gz -> hyprtoolkit-v0.5.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprtoolkit-0.5.2/VERSION new/hyprtoolkit-0.5.3/VERSION --- old/hyprtoolkit-0.5.2/VERSION 2026-01-04 14:02:50.000000000 +0100 +++ new/hyprtoolkit-0.5.3/VERSION 2026-01-22 21:14:02.000000000 +0100 @@ -1 +1 @@ -0.5.2 \ No newline at end of file +0.5.3 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprtoolkit-0.5.2/src/core/Backend.cpp new/hyprtoolkit-0.5.3/src/core/Backend.cpp --- old/hyprtoolkit-0.5.2/src/core/Backend.cpp 2026-01-04 14:02:50.000000000 +0100 +++ new/hyprtoolkit-0.5.3/src/core/Backend.cpp 2026-01-22 21:14:02.000000000 +0100 @@ -24,6 +24,14 @@ #include <print> #include <unistd.h> +#if defined(__FreeBSD__) +#include <pthread_np.h> +#elif defined(__NetBSD__) +#include <lwp.h> +#elif defined(__DragonFly__) +#include <sys/lwp.h> +#endif + using namespace Hyprtoolkit; using namespace Hyprutils::Memory; @@ -416,7 +424,18 @@ m_sLoopState.event = true; // let it process once - m_sLoopState.eventLoopThreadID = gettid(); + m_sLoopState.eventLoopThreadID = +#if defined(__linux__) + gettid(); +#elif defined(__FreeBSD__) + pthread_getthreadid_np(); +#elif defined(__OpenBSD__) + getthrid(); +#elif defined(__NetBSD__) + _lwp_self(); +#elif defined(__DragonFly__) + lwp_gettid(); +#endif while (!m_terminate) { std::unique_lock lk(m_sLoopState.eventRequestMutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprtoolkit-0.5.2/src/element/text/Text.cpp new/hyprtoolkit-0.5.3/src/element/text/Text.cpp --- old/hyprtoolkit-0.5.2/src/element/text/Text.cpp 2026-01-04 14:02:50.000000000 +0100 +++ new/hyprtoolkit-0.5.3/src/element/text/Text.cpp 2026-01-22 21:14:02.000000000 +0100 @@ -15,6 +15,7 @@ #include "../Element.hpp" #include "../../helpers/UTF8.hpp" #include "../../system/DesktopMethods.hpp" +#include "Macros.hpp" using namespace Hyprtoolkit; using namespace Hyprgraphics; @@ -78,7 +79,7 @@ textureToUse = m_impl->oldTex; if (!textureToUse) { - if (!m_impl->waitingForTex) + if (!m_impl->waitingForTex && !m_impl->resource) m_impl->renderTex(); return; } @@ -86,7 +87,8 @@ if ((impl->window && impl->window->scale() != m_impl->lastScale) || m_impl->needsTexRefresh) { m_impl->lastScale = impl->window ? impl->window->scale() : 1.F; m_impl->preferred = m_impl->getTextSizePreferred(); - m_impl->renderTex(); + if (!m_impl->resource) + m_impl->renderTex(); textureToUse = m_impl->oldTex; } @@ -329,7 +331,8 @@ oldTex = tex; needsTexRefresh = false; - resource.reset(); + ASSERT(!resource); + tex.reset(); waitingForTex = true; @@ -360,6 +363,18 @@ .wrap = maxSize.has_value() && maxSize->x >= 0, }); + if (Env::isTrace()) { + const std::string TEXT_SHORT = data.text.size() > 20 ? data.text.substr(0, 20) + "..." : data.text; + g_logger->log(HT_LOG_TRACE, "TextImpl: scheduling rendering of text \"{}\", with the following params:\nfont: {}, fontSize: {}, maxSize: {}, ellipsize: {}, wrap: {}", + TEXT_SHORT, // + data.fontFamily, // + sc<size_t>(std::round(lastFontSizeUnscaled * lastScale)), // + maxSize.has_value() ? std::format("{}", *maxSize) : "<no value>", // + !data.noEllipsize && maxSize.has_value() && maxSize->y >= 0, // + maxSize.has_value() && maxSize->x >= 0 // + ); + } + ASP<IAsyncResource> resourceGeneric(resource); g_asyncResourceGatherer->enqueue(resourceGeneric); @@ -393,6 +408,15 @@ if (self->impl->window) self->impl->window->scheduleReposition(self->impl->self); + if (Env::isTrace()) { + const std::string TEXT_SHORT = data.text.size() > 20 ? data.text.substr(0, 20) + "..." : data.text; + + if (size.x == 0 || size.y == 0 || !resourceGeneric->m_asset.cairoSurface) + g_logger->log(HT_LOG_ERROR, "TextImpl: failed to render text \"{}\"!!!", TEXT_SHORT); + else + g_logger->log(HT_LOG_TRACE, "TextImpl: got a tex with size {} for text \"{}\"", size, TEXT_SHORT); + } + waitingForTex = false; newTex = true; resource.reset(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprtoolkit-0.5.2/src/palette/ConfigManager.cpp new/hyprtoolkit-0.5.3/src/palette/ConfigManager.cpp --- old/hyprtoolkit-0.5.2/src/palette/ConfigManager.cpp 2026-01-04 14:02:50.000000000 +0100 +++ new/hyprtoolkit-0.5.3/src/palette/ConfigManager.cpp 2026-01-22 21:14:02.000000000 +0100 @@ -57,6 +57,8 @@ m_config->addConfigValue("link_text", Hyprlang::INT{0xFF4EECF8}); m_config->addConfigValue("accent", Hyprlang::INT{0xFF00FFCC}); m_config->addConfigValue("accent_secondary", Hyprlang::INT{0xFF0099F0}); + m_config->addConfigValue("rounding_large", Hyprlang::INT{10}); + m_config->addConfigValue("rounding_small", Hyprlang::INT{5}); m_config->addConfigValue("h1_size", Hyprlang::INT{19}); m_config->addConfigValue("h2_size", Hyprlang::INT{15}); @@ -102,6 +104,8 @@ auto LINK = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "link_text"); auto ACCENT = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "accent"); auto ACCENTSECONDARY = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "accent_secondary"); + auto ROUNDINGLARGE = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "rounding_large"); + auto ROUNDINGSMALL = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "rounding_small"); auto H1SIZE = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "h1_size"); auto H2SIZE = Hyprlang::CSimpleConfigValue<Hyprlang::INT>(m_config.get(), "h2_size"); @@ -121,6 +125,9 @@ p->m_colors.accent = *ACCENT; p->m_colors.accentSecondary = *ACCENTSECONDARY; + p->m_vars.bigRounding = *ROUNDINGLARGE; + p->m_vars.smallRounding = *ROUNDINGSMALL; + p->m_vars.h1Size = *H1SIZE; p->m_vars.h2Size = *H2SIZE; p->m_vars.h3Size = *H3SIZE;
