diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index c4bbeec..51d9975 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -584,6 +584,10 @@ agent or engineer to remove them without reconstructing context from chat. import/discard prompts and brush-package export completion now route retained dialog closing through `src/legacy_ui_overlay_services.*` instead of direct `destroy()` calls from service adapters. +- 2026-06-12: DEBT-0063 was narrowed again. Flood-fill tool teardown and + checkbox icon removal now route retained node destruction through + `src/legacy_ui_overlay_services.*`. The underlying `Node` tree still exposes + raw child pointers and public destroy state. - 2026-06-05: DEBT-0011 was narrowed. The Windows app package smoke target now passes the configure-time CMake executable into `package-smoke.ps1`, so VS 2026 generator validation does not depend on an older `cmake` on PATH, and diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index 56ecec7..2702fc8 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -535,6 +535,8 @@ Button, slider, scroll, color-wheel, color-quad, and canvas gesture-end capture release now route through that same helper. Legacy document-open import/discard prompts and brush-package export completion now route retained dialog closing through the same helper. +Flood-fill tool teardown and checkbox icon removal now route retained node +destruction through that helper as well. Raw popup callback captures and full close/capture ownership remain part of `DEBT-0063`. `pano_cli inspect-image` exposes PNG IHDR metadata as JSON, diff --git a/src/canvas_modes.cpp b/src/canvas_modes.cpp index abda1b6..9096571 100644 --- a/src/canvas_modes.cpp +++ b/src/canvas_modes.cpp @@ -1778,6 +1778,6 @@ void CanvasModeFloodFill::enter(kCanvasMode prev) void CanvasModeFloodFill::leave(kCanvasMode next) { - m_tool->destroy(); + pp::panopainter::destroy_legacy_node(*m_tool); m_tool = nullptr; } diff --git a/src/node_checkbox.cpp b/src/node_checkbox.cpp index e7cfd93..4f76d62 100644 --- a/src/node_checkbox.cpp +++ b/src/node_checkbox.cpp @@ -1,5 +1,6 @@ #include "pch.h" #include "log.h" +#include "legacy_ui_overlay_services.h" #include "node_checkbox.h" #include "texture.h" @@ -103,7 +104,7 @@ void NodeCheckBox::set_icon(const std::string& icon_path) if (icon_path.empty() || !TextureManager::load(icon_path.c_str())) { if (m_icon) - m_icon->destroy(); + pp::panopainter::destroy_legacy_node(*m_icon); m_icon = nullptr; return; }