diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index b66d2f23..11da9234 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -6846,6 +6846,11 @@ namespace IDE var window = (WidgetWindow)evt.mSender; + if (window.mFocusWidget is KeysEditWidget) + { + return; + } + IDECommand.ContextFlags useFlags = .None; var activeWindow = GetActiveWindow(); bool isMainWindow = activeWindow.mRootWidget is MainFrame; diff --git a/IDE/src/ui/PropertiesDialog.bf b/IDE/src/ui/PropertiesDialog.bf index 142c789c..2898f59f 100644 --- a/IDE/src/ui/PropertiesDialog.bf +++ b/IDE/src/ui/PropertiesDialog.bf @@ -80,7 +80,7 @@ namespace IDE.ui { if ((evt.mKeyFlags == 0) && ((evt.mKeyCode == .Delete) || (evt.mKeyCode == .Backspace)) && - (Content.HasSelection())) + ((Content.HasSelection()) || (!HasKeys))) { if ((evt.mKeyCode == .Delete) || (evt.mKeyCode == .Backspace)) { @@ -949,10 +949,11 @@ namespace IDE.ui if (curVariantType == typeof(List)) { - if (!newValue.IsEmpty && !newValue.StartsWith("<")) + if (!newValue.StartsWith("<")) { let entries = new List(); - KeyState.Parse(newValue, entries); + if (!newValue.IsEmpty) + KeyState.Parse(newValue, entries); editingProp.mCurValue = Variant.Create(entries, true); } else @@ -1386,6 +1387,13 @@ namespace IDE.ui var str = scope String(); KeyState.ToString(keyList, str); + if (str.IsEmpty) + { + let origEntry = propEntry.mOrigValue.Get>(); + if (!origEntry.IsEmpty) + str.Append("< Removed >"); + } + valueItem.Label = str; } else if (curVariantType.IsGenericType)