diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index b838faf..31f4e66 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -544,6 +544,9 @@ agent or engineer to remove them without reconstructing context from chat. - 2026-06-12: DEBT-0063/DEBT-0058 were narrowed again. App message-dialog cancel-button removal, layer-rename finish cleanup, and recording export progress cleanup now route retained closing through `src/legacy_ui_overlay_services.*`. +- 2026-06-12: DEBT-0063 was narrowed again. Floating-panel close and drag-outline + cleanup now use the retained close helper in `src/legacy_ui_overlay_services.*`; + drag placeholder reparenting and dock/drop mutation remain legacy-owned. - 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 f17acc3..c1d9a76 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -515,6 +515,8 @@ Cloud publish prompts, upload/download progress dialogs, and cloud browser download-close now use the retained overlay close helpers. App message-dialog cancel-button removal, layer-rename finish cleanup, and recording export progress cleanup also route through those helpers. +Floating-panel close and drag-outline cleanup now use the same retained close +helper while drag reparenting remains legacy-owned. 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/node_panel_floating.cpp b/src/node_panel_floating.cpp index a9317a3..51c6667 100644 --- a/src/node_panel_floating.cpp +++ b/src/node_panel_floating.cpp @@ -1,5 +1,6 @@ #include "pch.h" #include "node_panel_floating.h" +#include "legacy_ui_overlay_services.h" #include "log.h" Node* NodePanelFloating::clone_instantiate() const @@ -46,7 +47,7 @@ void NodePanelFloating::init_controls() m_button_close = find("button-close"); m_button_close->on_click = [this](Node*) { m_container->remove_all_children(); - destroy(); + pp::panopainter::close_legacy_dialog_node(*this); }; } @@ -176,7 +177,7 @@ kEventResult NodePanelFloating::handle_event(Event* e) if (m_outline) { outline_pos = m_outline->m_pos; - m_outline->destroy(); + pp::panopainter::close_legacy_dialog_node(*m_outline); } int drop_pos = 0; if (m_drop_placeholder)