Visitar URL original
Silk.NET.OpenGL.Extensions.ImGui: Key mod not sent to ImGui IO · Issue #2501 · dotnet/Silk.NET · GitHub
Skip to content

Silk.NET.OpenGL.Extensions.ImGui: Key mod not sent to ImGui IO #2501

Open

Description

@tvardero

Summary

Key mods like Ctrl, Alt, Shift are not sent to ImGUI during imguiController.Update((float)delta);

Steps to reproduce

Reproducible here: https://github.com/dotnet/Silk.NET/tree/main/examples/CSharp/OpenGL%20Demos
Windows 11, using WindowOptions.Default

  1. Add ImGui.ShowDemoWindow(); before imguiController.Render(); to draw demo window
  2. Start the project
  3. In demo window, navigate to "Inputs & Focus" category
  4. Press "Ctrl", "Ctrl+A", "Shift+Tab" or any other key combo with mod keys

Expected: Mods should appear in "Keys mods:" label. "Keys down:" label should show "ModCtrl", "ModShift", etc... together with "LeftCtrl", "LeftShift", etc...

Actual: Mods do not appear in "Keys mods:" label. "Keys down:" label contains only "LeftCtrl", "LeftShift", etc... This results in shortcuts not working at all. You can test shortcuts in "Shortcuts" subcategory of "Inputs & Focus"

Comments

Issue is somewhere here

Activity

  1. tvardero commented on Nov 15, 2025

    @tvardero
    Author

    Current workaround:

    // Add this after imGuiController.Update((float)delta);
    var io = ImGui.GetIO();
    var keyboard = input.Keyboards[0];
    
    io.AddKeyEvent(ImGuiKey.ModAlt, keyboard.IsKeyPressed(Key.AltLeft) || keyboard.IsKeyPressed(Key.AltRight));
    io.AddKeyEvent(ImGuiKey.ModSuper, keyboard.IsKeyPressed(Key.SuperLeft) || keyboard.IsKeyPressed(Key.SuperRight));
    io.AddKeyEvent(ImGuiKey.ModCtrl, keyboard.IsKeyPressed(Key.ControlLeft) || keyboard.IsKeyPressed(Key.ControlRight));
    io.AddKeyEvent(ImGuiKey.ModShift, keyboard.IsKeyPressed(Key.ShiftLeft) || keyboard.IsKeyPressed(Key.ShiftRight));

    Related: ocornut/imgui#5047

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions