gpt4 book ai didi

x11 - 无法在 XGrabKeyboard 之后移动窗口

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:57 24 4
gpt4 key购买 nike

调用XGrabKeyboard()后,我的应用程序捕获并显示所有按键/释放,包括 GUI 和 PrintScreen 键。 但是,用户不再能够移动应用程序的窗口。到目前为止,这发生在 Fedora 17 和 Ubuntu 12.04 上。

XGrabKeyboard() 的影响下,我如何允许用户移动应用程序? ?

下面是我的 Qt 应用程序的示例代码:

bool KeyboardStatus::x11Event(XEvent *event) {
switch (event->type) {
case FocusIn:
XGrabKeyboard(x11Info().display(), winId(), false, GrabModeAsync, GrabModeAsync, CurrentTime);
break;

case FocusOut:
XUngrabKeyboard(x11Info().display(), CurrentTime);
break;

case KeyPress:
// Display which key was pressed to user
return true;

case KeyRelease:
// Display which key was released to user
return true;
}

return false;
}

从事件处理程序中取出 grab 语句并不能解决问题。这是一个说明问题的示例项目:TestGrab.zip

最佳答案

我已经在 KDE、FVWM 和 GNOME(只使用 Xlib)上试过了,只有 GNOME 窗口管理器有这个问题。

我认为可以通过拾取 ConfigureNotify 事件来修复它,但是当您尝试移动窗口时它不会生成。

关于x11 - 无法在 XGrabKeyboard 之后移动窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com