mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-13 18:50:58 +01:00
MultiSelect: Added IMGUI_HAS_MULTI_SELECT define. Fixed right-click toggling selection without clearing active id, could lead to MarkItemEdited() asserting. Fixed demo.
This commit is contained in:
parent
8947c35fa1
commit
57da88093f
2
imgui.h
2
imgui.h
@ -2722,6 +2722,8 @@ struct ImColor
|
|||||||
// [SECTION] Multi-Select API flags and structures (ImGuiMultiSelectFlags, ImGuiMultiSelectData)
|
// [SECTION] Multi-Select API flags and structures (ImGuiMultiSelectFlags, ImGuiMultiSelectData)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define IMGUI_HAS_MULTI_SELECT // Multi-Select/Range-Select WIP branch // <-- This is currently _not_ in the top of imgui.h to prevent merge conflicts.
|
||||||
|
|
||||||
// Flags for BeginMultiSelect().
|
// Flags for BeginMultiSelect().
|
||||||
// This system is designed to allow mouse/keyboard multi-selection, including support for range-selection (SHIFT + click) which is difficult to re-implement manually.
|
// This system is designed to allow mouse/keyboard multi-selection, including support for range-selection (SHIFT + click) which is difficult to re-implement manually.
|
||||||
// If you disable multi-selection with ImGuiMultiSelectFlags_NoMultiSelect (which is provided for consistency and flexibility), the whole BeginMultiSelect() system
|
// If you disable multi-selection with ImGuiMultiSelectFlags_NoMultiSelect (which is provided for consistency and flexibility), the whole BeginMultiSelect() system
|
||||||
|
@ -1709,7 +1709,6 @@ struct ImGuiOldColumns
|
|||||||
// We always assume that -1 is an invalid value (which works for indices and pointers)
|
// We always assume that -1 is an invalid value (which works for indices and pointers)
|
||||||
#define ImGuiSelectionUserData_Invalid ((ImGuiSelectionUserData)-1)
|
#define ImGuiSelectionUserData_Invalid ((ImGuiSelectionUserData)-1)
|
||||||
|
|
||||||
#define IMGUI_HAS_MULTI_SELECT 1
|
|
||||||
#ifdef IMGUI_HAS_MULTI_SELECT
|
#ifdef IMGUI_HAS_MULTI_SELECT
|
||||||
|
|
||||||
struct IMGUI_API ImGuiMultiSelectState
|
struct IMGUI_API ImGuiMultiSelectState
|
||||||
|
@ -7258,7 +7258,9 @@ void ImGui::MultiSelectItemFooter(ImGuiID id, bool* p_selected, bool* p_pressed)
|
|||||||
bool hovered = IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup);
|
bool hovered = IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup);
|
||||||
if (hovered && IsMouseClicked(1))
|
if (hovered && IsMouseClicked(1))
|
||||||
{
|
{
|
||||||
SetFocusID(g.LastItemData.ID, window);
|
if (g.ActiveId != 0 && g.ActiveId != id)
|
||||||
|
ClearActiveID();
|
||||||
|
SetFocusID(id, window);
|
||||||
if (!pressed && !selected)
|
if (!pressed && !selected)
|
||||||
{
|
{
|
||||||
pressed = true;
|
pressed = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user