Demo: fixed multi-selection tree nodes demo to not replace selection when clicking on single-item that's already part of selection (#581)
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index a38e836..6fb75a9 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -275,9 +275,9 @@
{
// Update selection state. Process outside of tree loop to avoid visual inconsistencies during the clicking-frame.
if (ImGui::GetIO().KeyCtrl)
- selection_mask ^= (1 << node_clicked); // CTRL+click to toggle
- else
- selection_mask = (1 << node_clicked); // Click to single-select
+ selection_mask ^= (1 << node_clicked); // CTRL+click to toggle
+ else if (!(selection_mask & (1 << node_clicked))) // If there is already a selection don't replace we clicked node is part of it
+ selection_mask = (1 << node_clicked); // Click to single-select
}
ImGui::TreePop();
}