diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index 21a3cd6..749058b 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -509,10 +509,10 @@ agent or engineer to remove them without reconstructing context from chat. popup callbacks, retained close policy, and broader `Node` handle adoption remain open. - 2026-06-12: DEBT-0063 was narrowed again. Brush, brush-preset, color, layer, - grid, and stroke popup-panel outside-click close handling now routes through - `src/legacy_ui_overlay_services.*` for release, root removal, and callback - dispatch instead of repeating that sequence in each panel class. Broader - checked-handle and scoped-callback adoption remains open. + grid, stroke, and color-picker popup-panel outside-click close handling now + routes through `src/legacy_ui_overlay_services.*` for release, root removal, + and callback dispatch instead of repeating that sequence in each panel class. + Broader checked-handle and scoped-callback adoption remains open. - 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 a7b5dfc..5de4bf3 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -493,8 +493,9 @@ popup mouse-ignore/flood/capture-child activation for those popup families. Repeated menu, submenu, combo-box, and brush-preset popup close/release execution now uses the same retained helper, and popup tick-decoration close callbacks are bound through the overlay service instead of per-panel lambdas. -Brush, brush-preset, color, layer, grid, and stroke popup-panel outside-click -close handling now shares the same retained release/remove/callback helper. +Brush, brush-preset, color, layer, grid, stroke, and color-picker popup-panel +outside-click close handling now shares the same retained release/remove/ +callback 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/node_dialog_picker.cpp b/src/node_dialog_picker.cpp index 129dd81..746835d 100644 --- a/src/node_dialog_picker.cpp +++ b/src/node_dialog_picker.cpp @@ -3,6 +3,7 @@ #include "util.h" #include "app.h" #include "canvas.h" +#include "legacy_ui_overlay_services.h" #include "node_dialog_picker.h" #include @@ -59,10 +60,7 @@ kEventResult NodeColorPicker::handle_event(Event* e) m_color_old1->m_color = m_color_old->m_color; m_color_old->m_color = m_color_cur->m_color; } - mouse_release(); - m_parent->remove_child(this); - if (on_popup_close) - on_popup_close(this); + pp::panopainter::close_legacy_popup_panel(*this, on_popup_close); } break; default: