From 22c9d77909b96dee458803c3d56d6823c2c7f811 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Mon, 21 Jul 2025 12:43:47 +0200 Subject: [PATCH] fix: Don't draw the same pattern tooltip multiple times --- plugins/builtin/source/content/views/view_pattern_editor.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/builtin/source/content/views/view_pattern_editor.cpp b/plugins/builtin/source/content/views/view_pattern_editor.cpp index 0e74ad1d2..5e5770fa2 100644 --- a/plugins/builtin/source/content/views/view_pattern_editor.cpp +++ b/plugins/builtin/source/content/views/view_pattern_editor.cpp @@ -2193,12 +2193,17 @@ namespace hex::plugin::builtin { if (TRY_LOCK(ContentRegistry::PatternLanguage::getRuntimeLock())) { const auto &runtime = ContentRegistry::PatternLanguage::getRuntime(); + std::set drawnPatterns; for (u64 offset = 0; offset < size; offset += 1) { auto patterns = runtime.getPatternsAtAddress(address + offset); if (!patterns.empty() && !std::ranges::all_of(patterns, [](const auto &pattern) { return pattern->getVisibility() == pl::ptrn::Visibility::Hidden || pattern->getVisibility() == pl::ptrn::Visibility::HighlightHidden; })) { ImGui::BeginTooltip(); for (const auto &pattern : patterns) { + // Avoid drawing the same pattern multiple times + if (!drawnPatterns.insert(pattern).second) + continue; + auto visibility = pattern->getVisibility(); if (visibility == pl::ptrn::Visibility::Hidden || visibility == pl::ptrn::Visibility::HighlightHidden) continue;