From 08f65154681dc78c1c8f851793a09cf24473cfff Mon Sep 17 00:00:00 2001 From: omigamedev Date: Fri, 12 Jun 2026 15:53:08 +0200 Subject: [PATCH] Centralize retained delete confirmation closing --- docs/modernization/debt.md | 3 +++ docs/modernization/roadmap.md | 2 ++ src/legacy_ui_overlay_services.h | 2 +- src/node_dialog_browse.cpp | 2 +- src/node_dialog_open.cpp | 2 +- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index ab7f48a..c54b07c 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -531,6 +531,9 @@ agent or engineer to remove them without reconstructing context from chat. - 2026-06-12: DEBT-0063/DEBT-0058 were narrowed again. Browse accept, resize accept/failure, and what's-new read-later/close callbacks now route retained dialog destruction through `src/legacy_ui_overlay_services.*`. +- 2026-06-12: DEBT-0063/DEBT-0058 were narrowed again. Open/Browse + delete-confirmation message boxes and shared destroy-on-click bindings now + use the retained dialog close helper in `src/legacy_ui_overlay_services.*`. - 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 3a1299a..b40b7eb 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -506,6 +506,8 @@ App-level new-document, save, and layer-rename cancel callbacks now share the retained dialog close plus virtual-keyboard hide helper. Browse accept, resize accept/failure, and what's-new read-later/close callbacks now use a named retained dialog close helper instead of direct `destroy()` calls. +Open/Browse delete-confirmation message boxes and shared destroy-on-click +bindings now use that same retained dialog close helper. 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/legacy_ui_overlay_services.h b/src/legacy_ui_overlay_services.h index cc30381..27db4d0 100644 --- a/src/legacy_ui_overlay_services.h +++ b/src/legacy_ui_overlay_services.h @@ -80,7 +80,7 @@ template void bind_legacy_click_destroys_node(ButtonT& button, Node& target) noexcept { button.on_click = [&target](Node*) { - target.destroy(); + close_legacy_dialog_node(target); }; } diff --git a/src/node_dialog_browse.cpp b/src/node_dialog_browse.cpp index 0ff1569..90f80b0 100644 --- a/src/node_dialog_browse.cpp +++ b/src/node_dialog_browse.cpp @@ -59,7 +59,7 @@ void NodeDialogBrowse::init_controls() selected_name = ""; } Asset::delete_file(path); - msgbox->destroy(); + pp::panopainter::close_legacy_dialog_node(*msgbox); }; (void)pp::panopainter::attach_legacy_overlay_node_to_root(*this, msgbox); root()->update(); diff --git a/src/node_dialog_open.cpp b/src/node_dialog_open.cpp index 0629182..6a378d1 100644 --- a/src/node_dialog_open.cpp +++ b/src/node_dialog_open.cpp @@ -60,7 +60,7 @@ void NodeDialogOpen::init_controls() image_tex->tex.reset(); } Asset::delete_file(path); - msgbox->destroy(); + pp::panopainter::close_legacy_dialog_node(*msgbox); }; (void)pp::panopainter::attach_legacy_overlay_node_to_root(*this, msgbox); root()->update();