首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xlib python:无法映射firefox菜单

Xlib python:无法映射firefox菜单
EN

Stack Overflow用户
提问于 2015-09-04 13:36:46
回答 2查看 207关注 0票数 1

我做了一个小的窗口管理器,基于:

simplewm.py https://github.com/mpnordland/Mozzarella/blob/master/cheesewm.py~

我正在尝试让firefox正常工作,但无法显示未映射的窗口(即firefox菜单/右键单击选项)。

但是,我已经尝试过window.map(),这只会使菜单再次闪烁和消失。它还会导致一个"Xlib.X.UnmapNotify“事件

当我在firefox中右键单击(或单击菜单)时,它会导致两个xlib事件:

代码语言:javascript
复制
    Xlib.protocol.event.ClientMessage(type = 161, window = <Xlib.display.Window 0x010005a9>, client_type = 343, data = (32, array('I', [0L, 383L, 0L, 0L, 0L])), sequence_number = 3106)


    Xlib.protocol.event.UnmapNotify(window = <Xlib.display.Window 0x010005a9>, type = 146, event = <Xlib.display.Window 0x00000292>, sequence_number = 3108, from_configure = 0)

所以看起来Firefox正在取消我想要映射的菜单的映射...:/

EN

回答 2

Stack Overflow用户

发布于 2015-09-05 08:06:02

找到了!

问题出在窗口焦点上。除非在Firefox主窗口上设置了输入焦点,否则Firefox不允许菜单或右键单击对话框保持打开状态。

代码语言:javascript
复制
window.set_input_focus(Xlib.X.RevertToPointerRoot, Xlib.X.CurrentTime)
票数 0
EN

Stack Overflow用户

发布于 2015-09-06 04:10:54

我也已经寻找了大约一个星期的解决方案,这对我很有帮助。

更具体地说,当您在框架窗口上获得一个EnterNotify时,必须在主客户机窗口中调用set_input_focus()。(即,在焦点跟随鼠标模式下)。无论您使用RevertToPointerRoot还是RevertToParent,似乎都无关紧要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390790

复制
相关文章

相似问题

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