Fix ContextMenuSingleSelectGroup selection of the first item that had default value
This commit is contained in:
@@ -23,6 +23,7 @@ namespace FlaxEditor.GUI.ContextMenu
|
|||||||
|
|
||||||
private List<ContextMenu> _menus = new List<ContextMenu>();
|
private List<ContextMenu> _menus = new List<ContextMenu>();
|
||||||
private List<SingleSelectGroupItem> _items = new List<SingleSelectGroupItem>();
|
private List<SingleSelectGroupItem> _items = new List<SingleSelectGroupItem>();
|
||||||
|
private bool _hasSelected = false;
|
||||||
private SingleSelectGroupItem _selectedItem;
|
private SingleSelectGroupItem _selectedItem;
|
||||||
|
|
||||||
public T Selected
|
public T Selected
|
||||||
@@ -31,7 +32,7 @@ namespace FlaxEditor.GUI.ContextMenu
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
var index = _items.FindIndex(x => x.Value.Equals(value));
|
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]);
|
SetSelected(_items[index]);
|
||||||
}
|
}
|
||||||
@@ -70,7 +71,7 @@ namespace FlaxEditor.GUI.ContextMenu
|
|||||||
if (item.Tooltip != null)
|
if (item.Tooltip != null)
|
||||||
btn.TooltipText = item.Tooltip;
|
btn.TooltipText = item.Tooltip;
|
||||||
item.Buttons.Add(btn);
|
item.Buttons.Add(btn);
|
||||||
if (item.Equals(_selectedItem))
|
if (_hasSelected && item.Equals(_selectedItem))
|
||||||
btn.Checked = true;
|
btn.Checked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,6 +83,7 @@ namespace FlaxEditor.GUI.ContextMenu
|
|||||||
btn.Checked = false;
|
btn.Checked = false;
|
||||||
}
|
}
|
||||||
_selectedItem = item;
|
_selectedItem = item;
|
||||||
|
_hasSelected = true;
|
||||||
|
|
||||||
SelectedChanged?.Invoke(item.Value);
|
SelectedChanged?.Invoke(item.Value);
|
||||||
item.Selected?.Invoke();
|
item.Selected?.Invoke();
|
||||||
|
|||||||
Reference in New Issue
Block a user