SDL2:在窗口上设置输入焦点

时间:2015-06-16 02:02:28

标签: keyboard sdl sdl-2

使用SDL2,我有一个由两个监视器和两个SDL窗口组成的设置。每个监视器都有自己的窗口设置为全屏模式。

我的目标是一次将键盘输入提供给一个窗口,并通过按Tab键允许切换窗口。我的每个窗口都有“键盘焦点”的概念,我在SDL_WINDOWEVENT_FOCUS_GAINED和SDL_WINDOWEVENT_FOCUS_LOST上听。

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

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

1 个答案:

答案 0 :(得分:3)

从这个SDL维基页面:SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS听起来默认行为是最小化,但您可以设置此选项以使窗口不最小化。有关如何使用提示,请查看维基上的CategoryHints,我自己从未使用过它们,但这可能就是您想要的。