Skip to content

Fix WASD and Q/E navigation after focusing the 3D viewport - #33

Merged
JamieW105 merged 2 commits into
mainfrom
fix/viewport-keyboard-focus
Oct 14, 2026
Merged

JamieW105 merged 2 commits into
mainfrom
fix/viewport-keyboard-focus

Conversation

@JamieW105

@JamieW105 JamieW105 commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Clicking the 3D viewport previously gave it keyboard focus and then disabled WASD and Q/E: egui reports keyboard capture for any focused widget, including the viewport itself. Allow the focused viewport to receive its own keys, retain hover navigation when no other widget has focus, and pause keyboard navigation when the editor window loses focus. Use the same focus rule for embedded Play input.

Add headless egui regression tests for clicked/hovered viewports, text-field focus and window focus loss. Document controls and recovery steps in the engine guide and the companion website PR: Rustic-Game-Engine/docs#39.

Validation:

  • All 32 rustic-editor tests passed, including the three focus regression tests.
  • cargo fmt --all -- --check and git diff --check passed.
  • cargo clippy --locked -p rustic-editor --all-targets -- -D warnings passed.
  • Companion website lint, production build, TypeScript, audit and docs/link checks passed.
  • All required engine CI checks passed on Linux and Windows, including rendered viewport verification and application smoke tests.
  • Windows CI built a fresh installer, tested toolchain failures and packaged Setup, and uploaded the 21.7 MB windows-installer artifact: https://github.com/Rustic-Game-Engine/engine/actions/runs/38491493926/artifacts/11862971142.

Native desktop interaction has not been manually tested in this workspace.

@JamieW105
JamieW105 merged commit ddf771a into main Oct 14, 2026
8 checks passed
@github-actions
github-actions Bot deleted the fix/viewport-keyboard-focus branch October 14, 2026 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants