首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLIB窗口管理器中的终端不能从屏幕键盘上的"OnBoard“接收按键

XLIB窗口管理器中的终端不能从屏幕键盘上的"OnBoard“接收按键
EN

Stack Overflow用户
提问于 2020-02-09 10:19:36
回答 1查看 78关注 0票数 2

考虑以下在线找到的最小窗口管理器。它可以很好地编译和运行。

代码语言:javascript
复制
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    Display *display;
    Window window;
    XEvent event;
    int s;

    /* open connection with the server */
    display = XOpenDisplay(NULL);
    if (display == NULL)
    {
        fprintf(stderr, "Cannot open display\n");
        exit(1);
    }

    s = DefaultScreen(display);

    /* create window */
    window = XCreateSimpleWindow(display, RootWindow(display, s), 10, 10, 200, 200, 1,
                           BlackPixel(display, s), WhitePixel(display, s));

    /* select kind of events we are interested in */
    XSelectInput(display, window, KeyPressMask | KeyReleaseMask );

    /* map (show) the window */
    XMapWindow(display, window);

    /* event loop */
    while (1)
    {
        XNextEvent(display, &event);

        /* keyboard events */
        if (event.type == KeyPress)
        {
            printf( "KeyPress: %x\n", event.xkey.keycode );

            /* exit on ESC key press */
            if ( event.xkey.keycode == 0x09 )
                break;
        }
        else if (event.type == KeyRelease)
        {
            printf( "KeyRelease: %x\n", event.xkey.keycode );
        }
    }

    /* close connection to server */
    XCloseDisplay(display);

    return 0;
}

在这个窗口管理器中,我可以使用ubuntu加载终端(如xterm)和"onboard“屏幕上的键盘程序(服务器附加,安装了xinit )。在这个最小的窗口管理器中,板载屏幕键盘不向其他窗口发送按键输入(板载加载到屏幕底部区域)。

请注意,DWM最小化窗口管理器按预期工作(板载输入将发送到所有其他窗口)。我在DWM源代码中找不到考虑这种事情的地方。

我的问题是:如何让这个迷你窗口管理器允许板载屏幕键盘将输入发送到其他窗口?

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 02:49:01

找到了解决方案。我应该已经在终端上使用了XSetInputFocus,然后输入就正确了。

代码语言:javascript
复制
//e.window is the program window for the program that should get the input.
XSetInputFocus(mDisplay, e.window, RevertToPointerRoot, CurrentTime);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60132969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档