Fix ContextMenuSingleSelectGroup selection of the first item that had default value

This commit is contained in:
Wojtek Figat
2023-09-01 11:43:02 +02:00
parent 21b90fb829
commit 462da342a7

View File

@@ -23,6 +23,7 @@ namespace FlaxEditor.GUI.ContextMenu
private List<ContextMenu> _menus = new List<ContextMenu>();
private List<SingleSelectGroupItem> _items = new List<SingleSelectGroupItem>();
private bool _hasSelected = false;
private SingleSelectGroupItem _selectedItem;
public T Selected
@@ -31,7 +32,7 @@ namespace FlaxEditor.GUI.ContextMenu
set
{
var index = _items.FindIndex(x => x.Value.Equals(value));
if (index != -1 && !_selectedItem.Value.Equals(value))
if (index != -1 && (!_hasSelected || !_selectedItem.Value.Equals(value)))
{
SetSelected(_items[index]);
}
@@ -70,7 +71,7 @@ namespace FlaxEditor.GUI.ContextMenu
if (item.Tooltip != null)
btn.TooltipText = item.Tooltip;
item.Buttons.Add(btn);
if (item.Equals(_selectedItem))
if (_hasSelected && item.Equals(_selectedItem))
btn.Checked = true;
}
@@ -82,6 +83,7 @@ namespace FlaxEditor.GUI.ContextMenu
btn.Checked = false;
}
_selectedItem = item;
_hasSelected = true;
SelectedChanged?.Invoke(item.Value);
item.Selected?.Invoke();