diff --git a/Dalamud/Interface/ImGuiHelpers.cs b/Dalamud/Interface/ImGuiHelpers.cs
index 3e39e9429..67c0c687d 100644
--- a/Dalamud/Interface/ImGuiHelpers.cs
+++ b/Dalamud/Interface/ImGuiHelpers.cs
@@ -4,7 +4,9 @@ using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Numerics;
+using Dalamud.Game.ClientState.Keys;
using ImGuiNET;
+using ImGuiScene;
namespace Dalamud.Interface
{
@@ -215,6 +217,26 @@ namespace Dalamud.Interface
target.Value!.BuildLookupTable();
}
+ ///
+ /// Map a VirtualKey keycode to an ImGuiKey enum value.
+ ///
+ /// The VirtualKey value to retrieve the ImGuiKey counterpart for.
+ /// The ImGuiKey that corresponds to this VirtualKey, or ImGuiKey.None otherwise.
+ public static ImGuiKey VirtualKeyToImGuiKey(VirtualKey key)
+ {
+ return ImGui_Input_Impl_Direct.VirtualKeyToImGuiKey((int)key);
+ }
+
+ ///
+ /// Map an ImGuiKey enum value to a VirtualKey code.
+ ///
+ /// The ImGuiKey value to retrieve the VirtualKey counterpart for.
+ /// The VirtualKey that corresponds to this ImGuiKey, or VirtualKey.NO_KEY otherwise.
+ public static VirtualKey ImGuiKeyToVirtualKey(ImGuiKey key)
+ {
+ return (VirtualKey)ImGui_Input_Impl_Direct.ImGuiKeyToVirtualKey(key);
+ }
+
///
/// Get data needed for each new frame.
///
diff --git a/lib/ImGuiScene b/lib/ImGuiScene
index 1e4c06b36..5dca91763 160000
--- a/lib/ImGuiScene
+++ b/lib/ImGuiScene
@@ -1 +1 @@
-Subproject commit 1e4c06b36013efb367c8c57c7f724a30f67a3973
+Subproject commit 5dca917630078e807ecabf5b33ccb8863655d7a4