作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 xcb 在 Rust 中编写一个窗口管理器以用于学习目的。图书馆。我的代码和几个测试窗口(xterm
实例)都在 Xephyr session 中运行。我将根窗口上的事件掩码设置为
xproto::EVENT_MASK_SUBSTRUCTURE_REDIRECT
| xproto::EVENT_MASK_SUBSTRUCTURE_NOTIFY
| xproto::EVENT_MASK_POINTER_MOTION
| xproto::EVENT_MASK_LEAVE_WINDOW
| xproto::EVENT_MASK_ENTER_WINDOW
| xproto::EVENT_MASK_BUTTON_PRESS
| xproto::EVENT_MASK_PROPERTY_CHANGE
| xproto::EVENT_MASK_FOCUS_CHANGE
并且所有子窗口都有一个事件掩码
xproto::EVENT_MASK_ENTER_WINDOW
| xproto::EVENT_MASK_LEAVE_WINDOW
| xproto::EVENT_MASK_BUTTON_PRESS
| xproto::EVENT_MASK_PROPERTY_CHANGE
| xproto::EVENT_MASK_POINTER_MOTION
| xproto::EVENT_MASK_FOCUS_CHANGE
| xproto::EVENT_MASK_STRUCTURE_NOTIFY
| xproto::EVENT_MASK_EXPOSURE
当我将鼠标移到非根窗口上时,我使用
EnterNotify
事件以在该窗口上抓取鼠标按钮,用于点击聚焦,并在
LeaveNotify
上取消抓取.事件的顺序是:
EnterNotify
对于非根窗口LeaveNotify
,而鼠标仍在非根窗口LeaveNotify
而取消抓取按钮LeaveNotify
对于非根窗口EnterNotify
对于根窗口,然后在根窗口上捕获鼠标按钮ButtonPress
为根窗口发送,尽管光标位于非根窗口 SUBSTRUCTURE_REDIRECT | SUBSTRUCTURE_NOTIFY | BUTTON_PRESS
仅限 LEAVE_WINDOW
到非根窗口,并且不处理这些事件 最佳答案
查看协议(protocol)引用手册。它描述了(以及许多其他内容)生成进入和离开事件的确切算法:https://www.x.org/releases/X11R7.6/doc/xproto/x11protocol.html#events:pointer_window
在您的具体情况下,我希望 LeaveNotify
事件有mode: Grab
,这意味着窗口不再具有“正常”指针焦点,因为某些东西(您的程序)抓取了输入。
如果这不是答案,我建议您在 xtrace / x11trace 下运行 WM (在基于 Debian 的发行版中以软件包 xtrace
的形式提供)。该程序打印所有“通过”的 X11 流量。这可能有助于弄清楚发生了什么。
关于rust - xcb:在 EnterNotify 之后立即收到 LeaveNotify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63621575/
我正在使用 xcb 在 Rust 中编写一个窗口管理器以用于学习目的。图书馆。我的代码和几个测试窗口(xterm 实例)都在 Xephyr session 中运行。我将根窗口上的事件掩码设置为 xpr
我是一名优秀的程序员,十分优秀!