diff --git a/Source/Editor/GUI/MainMenu.cs b/Source/Editor/GUI/MainMenu.cs index 66b10f0aa..370ad056b 100644 --- a/Source/Editor/GUI/MainMenu.cs +++ b/Source/Editor/GUI/MainMenu.cs @@ -304,6 +304,17 @@ namespace FlaxEditor.GUI return true; } + /// + public override bool OnKeyDown(KeyboardKeys key) + { + if (base.OnKeyDown(key)) + return true; + + // Fallback to the edit window for shortcuts + var editor = Editor.Instance; + return editor.Windows.EditWin.InputActions.Process(editor, this, key); + } + /// protected override void PerformLayoutAfterChildren() { diff --git a/Source/Editor/GUI/ToolStrip.cs b/Source/Editor/GUI/ToolStrip.cs index 0dac241ed..360d63ffe 100644 --- a/Source/Editor/GUI/ToolStrip.cs +++ b/Source/Editor/GUI/ToolStrip.cs @@ -1,6 +1,7 @@ // Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System; +using FlaxEditor.Windows; using FlaxEngine; using FlaxEngine.GUI; @@ -181,5 +182,25 @@ namespace FlaxEditor.GUI PerformLayout(); } + + /// + public override bool OnKeyDown(KeyboardKeys key) + { + if (base.OnKeyDown(key)) + return true; + + // Fallback to the owning window for shortcuts + EditorWindow editorWindow = null; + ContainerControl c = Parent; + while (c != null && editorWindow == null) + { + editorWindow = c as EditorWindow; + c = c.Parent; + } + var editor = Editor.Instance; + if (editorWindow == null) + editorWindow = editor.Windows.EditWin; // Fallback to main editor window + return editorWindow.InputActions.Process(editor, this, key); + } } } diff --git a/Source/Editor/Modules/ContentFindingModule.cs b/Source/Editor/Modules/ContentFindingModule.cs index ccf1cb3e4..9e8002c8a 100644 --- a/Source/Editor/Modules/ContentFindingModule.cs +++ b/Source/Editor/Modules/ContentFindingModule.cs @@ -166,6 +166,8 @@ namespace FlaxEditor.Modules public void ShowFinder(Control control) { var finder = _finder ?? (_finder = new ContentFinder()); + if (control == null) + control = Editor.Instance.Windows.MainWindow.GUI; var position = (control.Size - new Float2(finder.Width, 300.0f)) * 0.5f; finder.Show(control, position); }