SDL2:如何提高 window(在调用终端之上)

SDL2: how to raise window (on top of calling terminal)

window 总是在后台弹出,但我希望它在前台,至少在终端前面,其中执行打开 window 的代码.

我不需要专注于那个window,所以不专注地提高就可以了。 (SDL2 Raising a window without giving it focus).

我已经尝试了所有 SDL_WindowFlags,但 none 似乎有帮助。 SDL_RaiseWindow() 也没有帮助。

window 用于以图形方式显示终端程序的结果。 我在 CentOs 6.4

上从源代码 2.0.3 编译了 SDL2

我编译下面的程序并从 KDE 中的 bash 终端启动它(焦点窃取预防级别:低,焦点策略:点击焦点)。

示例代码:

#include <SDL.h>

int main(int, char**){
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480,
        SDL_WINDOW_SHOWN | SDL_WINDOW_INPUT_GRABBED |
        SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_MOUSE_FOCUS |
        SDL_WINDOW_FOREIGN | SDL_WINDOW_OPENGL);
    SDL_RaiseWindow(win);

    SDL_Delay(4000);
    SDL_DestroyWindow(win);
    SDL_Quit();

    return 0;
}

编辑: 我在 windows 下的 Cygwin64 中尝试了相同的示例。在这种情况下,window 会在终端前弹出。那么这是一个 CentOS/window-manager 问题吗?

KDE/CentOs 中的行为取决于 window 管理器的 焦点窃取预防级别 设置。它被设置为 low。 当我将 window 设置为 none 时,它会在顶部升起。 我的新问题是:即使设置 low,我能否以某种方式强制提高 window? ()

Cygwin64下的window也在Windows下提出。