Centralize retained node teardown
This commit is contained in:
@@ -15,11 +15,21 @@ void initialize_legacy_overlay_node(App& app, Node& node)
|
||||
node.loaded();
|
||||
}
|
||||
|
||||
void close_legacy_dialog_node(Node& node)
|
||||
void destroy_legacy_node(Node& node)
|
||||
{
|
||||
node.destroy();
|
||||
}
|
||||
|
||||
void detach_legacy_node_from_parent(Node& node)
|
||||
{
|
||||
node.remove_from_parent();
|
||||
}
|
||||
|
||||
void close_legacy_dialog_node(Node& node)
|
||||
{
|
||||
destroy_legacy_node(node);
|
||||
}
|
||||
|
||||
void release_legacy_mouse_capture(Node& node) noexcept
|
||||
{
|
||||
node.mouse_release();
|
||||
@@ -41,7 +51,7 @@ void activate_legacy_popup_overlay(Node& node) noexcept
|
||||
void close_legacy_popup_overlay(Node& node) noexcept
|
||||
{
|
||||
release_legacy_mouse_capture(node);
|
||||
node.destroy();
|
||||
destroy_legacy_node(node);
|
||||
}
|
||||
|
||||
void close_legacy_dialog_and_hide_keyboard(App& app, Node& node)
|
||||
@@ -56,7 +66,7 @@ void close_legacy_popup_panel(
|
||||
{
|
||||
release_legacy_mouse_capture(node);
|
||||
if (node.m_parent) {
|
||||
node.m_parent->remove_child(&node);
|
||||
detach_legacy_node_from_parent(node);
|
||||
}
|
||||
if (on_close) {
|
||||
on_close(&node);
|
||||
|
||||
@@ -13,6 +13,8 @@ namespace pp::panopainter {
|
||||
|
||||
void initialize_legacy_overlay_node(App& app, Node& node);
|
||||
|
||||
void destroy_legacy_node(Node& node);
|
||||
void detach_legacy_node_from_parent(Node& node);
|
||||
void close_legacy_dialog_node(Node& node);
|
||||
void release_legacy_mouse_capture(Node& node) noexcept;
|
||||
void configure_legacy_popup_overlay(Node& node) noexcept;
|
||||
|
||||
@@ -77,7 +77,7 @@ void NodeDialogCloud::load_thumbs_thread()
|
||||
return;
|
||||
}
|
||||
|
||||
align->destroy();
|
||||
pp::panopainter::destroy_legacy_node(*align);
|
||||
|
||||
LOG("CLOUD LIST: %s", res.c_str());
|
||||
|
||||
|
||||
@@ -437,7 +437,7 @@ public:
|
||||
}
|
||||
|
||||
const bool new_current = !p->m_current || p->m_container->get_child_index(p->m_current) == current_index;
|
||||
p->m_container->m_children[current_index]->destroy();
|
||||
pp::panopainter::destroy_legacy_node(*p->m_container->m_children[current_index]);
|
||||
if (clears_selection) {
|
||||
p->m_current = nullptr;
|
||||
} else if (new_current && selects_target) {
|
||||
|
||||
@@ -127,7 +127,7 @@ kEventResult NodePanelFloating::handle_event(Event* e)
|
||||
{
|
||||
m_outline->SetPosition(c->m_pos);
|
||||
m_outline->SetSize(c->m_size);
|
||||
m_drop_placeholder->remove_from_parent();
|
||||
pp::panopainter::detach_legacy_node_from_parent(*m_drop_placeholder);
|
||||
int i = 0;
|
||||
float y = 0;
|
||||
for (; i < c->m_children.size(); i++)
|
||||
@@ -154,7 +154,7 @@ kEventResult NodePanelFloating::handle_event(Event* e)
|
||||
}
|
||||
}
|
||||
if (!docked && m_drop_placeholder->m_parent)
|
||||
m_drop_placeholder->remove_from_parent();
|
||||
pp::panopainter::detach_legacy_node_from_parent(*m_drop_placeholder);
|
||||
}
|
||||
else if (m_action == kDragAction::Reheight)
|
||||
{
|
||||
@@ -184,8 +184,8 @@ kEventResult NodePanelFloating::handle_event(Event* e)
|
||||
{
|
||||
if (m_drop_placeholder->m_parent)
|
||||
drop_pos = std::max(0, m_drop_placeholder->m_parent->get_child_index(m_drop_placeholder.get()));
|
||||
m_drop_placeholder->destroy();
|
||||
m_drop_placeholder->remove_from_parent();
|
||||
pp::panopainter::destroy_legacy_node(*m_drop_placeholder);
|
||||
pp::panopainter::detach_legacy_node_from_parent(*m_drop_placeholder);
|
||||
}
|
||||
bool docked = false;
|
||||
if (m_droppable)
|
||||
@@ -226,7 +226,7 @@ kEventResult NodePanelFloating::handle_event(Event* e)
|
||||
m_outline = nullptr;
|
||||
m_drop_placeholder = nullptr;
|
||||
}
|
||||
mouse_release();
|
||||
pp::panopainter::release_legacy_mouse_capture(*this);
|
||||
ret = kEventResult::Consumed;
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user