SDL2:将输入焦点设置在 window

SDL2: set input focus on a window

使用 SDL2,我有一个由两个监视器和两个 SDL 组成的设置 ​​windows。每个显示器都有自己的 Window 全屏模式设置。

我的目标是一次将键盘输入提供给一个 window,并允许通过按 Tab 键切换 window。我的每个 window 都有 "keyboard focus" 的概念,为此我在 SDL_WINDOWEVENT_FOCUS_GAINED 和 SDL_WINDOWEVENT_FOCUS_LOST.

上收听

我遇到的问题是使用 Tab 键将输入焦点从一个 window 切换到下一个。 SDL_RaiseWindow() 更改了输入,但它以某种方式完全最小化了另一个 window。我试图恢复以前的 window,但没有用。

如果我要使用鼠标,那么代码可以工作,但我更愿意创建一个热键,允许将键盘从一个 window 重定向到另一个。

从这个 SDL wiki 页面:SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS it sounds like the default behavior is to minimize but you can set this option to have the window not minimize. For how to use hints check out CategoryHints 在 wiki 上,我自己从未使用过它们,但这可能是您想要的。