1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-21 17:28:00 +02:00

Improved handling of conflict of key chord prefix and one-key command

This commit is contained in:
Brian Fiete 2022-06-21 12:31:38 -07:00
parent 7c00fe87c4
commit dd7986aaa9
2 changed files with 25 additions and 1 deletions

View file

@ -221,6 +221,30 @@ namespace IDE.ui
}
}
// Do chord prefix search
for (var propEntries in mPropPage.mPropEntries.Values)
{
var propEntry = propEntries[0];
let keyEntry = (KeyEntry)propEntry.mTarget;
let origKeys = propEntry.mCurValue.Get<List<KeyState>>();
var keys = scope List<KeyState>(origKeys.GetEnumerator());
while (keys.Count > 1)
{
keys.PopBack();
let keyEntryStr = scope String();
KeyState.ToString(keys, keyEntryStr);
keyEntryStr.Append(" ");
CommandContextToString(keyEntry.mContextFlags, keyEntryStr);
if (mappedEntries.TryGet(keyEntryStr, var keyPtr, var valuePtr))
{
let other = valuePtr;
other.mHasConflict = true;
keyEntry.mHasConflict = true;
}
}
}
for (let keyEntryStr in mappedEntries.Keys)
delete keyEntryStr;