Centralize retained color picker closing

This commit is contained in:
2026-06-12 15:21:56 +02:00
parent a63246f716
commit 9b482d7f6b
3 changed files with 9 additions and 10 deletions

View File

@@ -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 popup callbacks, retained close policy, and broader `Node` handle adoption
remain open. remain open.
- 2026-06-12: DEBT-0063 was narrowed again. Brush, brush-preset, color, layer, - 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 grid, stroke, and color-picker popup-panel outside-click close handling now
`src/legacy_ui_overlay_services.*` for release, root removal, and callback routes through `src/legacy_ui_overlay_services.*` for release, root removal,
dispatch instead of repeating that sequence in each panel class. Broader and callback dispatch instead of repeating that sequence in each panel class.
checked-handle and scoped-callback adoption remains open. Broader checked-handle and scoped-callback adoption remains open.
- 2026-06-05: DEBT-0011 was narrowed. The Windows app package smoke target now - 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 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 2026 generator validation does not depend on an older `cmake` on PATH, and

View File

@@ -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 Repeated menu, submenu, combo-box, and brush-preset popup close/release
execution now uses the same retained helper, and popup tick-decoration close execution now uses the same retained helper, and popup tick-decoration close
callbacks are bound through the overlay service instead of per-panel lambdas. callbacks are bound through the overlay service instead of per-panel lambdas.
Brush, brush-preset, color, layer, grid, and stroke popup-panel outside-click Brush, brush-preset, color, layer, grid, stroke, and color-picker popup-panel
close handling now shares the same retained release/remove/callback helper. 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 Raw popup callback captures and full close/capture ownership remain part of
`DEBT-0063`. `DEBT-0063`.
`pano_cli inspect-image` exposes PNG IHDR metadata as JSON, `pano_cli inspect-image` exposes PNG IHDR metadata as JSON,

View File

@@ -3,6 +3,7 @@
#include "util.h" #include "util.h"
#include "app.h" #include "app.h"
#include "canvas.h" #include "canvas.h"
#include "legacy_ui_overlay_services.h"
#include "node_dialog_picker.h" #include "node_dialog_picker.h"
#include <stdlib.h> #include <stdlib.h>
@@ -59,10 +60,7 @@ kEventResult NodeColorPicker::handle_event(Event* e)
m_color_old1->m_color = m_color_old->m_color; m_color_old1->m_color = m_color_old->m_color;
m_color_old->m_color = m_color_cur->m_color; m_color_old->m_color = m_color_cur->m_color;
} }
mouse_release(); pp::panopainter::close_legacy_popup_panel(*this, on_popup_close);
m_parent->remove_child(this);
if (on_popup_close)
on_popup_close(this);
} }
break; break;
default: default: