当前位置: 首页 > 工具软件 > OpenBox > 使用案例 >

openbox的异常

呼延才俊
2023-12-01

openbox的异常,虽然标题是这个,但未必是openbox的bug

但肯定的是与openbox关系比较密切

项目中出现一件灵异事件:

当程序(基于qt)起来之后,有时,主界面会发生列表框里快速闪,频率超过3次/秒,感觉很快

注意:是有时,目前还未完全掌握规律,开机的时候比较容易出现,其他时间段暂时不清除是否会出现

此时会导致,触摸屏按其他地方是无效的,当然如果手速足够快的人,可以触发其他按键

此时,根本停不下来,持续时间久了之后,可能会导致整个UI卡死。

还有一个奇怪现象,此时若把自己的程序kill掉,然后再重启,貌似就正常了。

ps:由于涉及到项目,又是动态效果,因此只能文字描述下

先排除下自己代码,经过走查是可以排除

此时的现象,是焦点切换,通过qt定时判断 焦点是否在窗体上:

QWidget* p = QApplication::focusWidget();

的确,也会抓到 p==0 的情况

说明,当出现闪烁的时候,qt程序认为焦点是丢失了的,至于是否又抢回来了,这个不好判断,也有可能”第三方“设置回来了

因此,猜测:

1. 是否有其他后台进程,来抢占焦点?

这个猜测有点不靠谱,就是,抢焦点就抢好了,抢了之后无非就没有焦点,不会导致一直闪烁。

      另外,关键是我们的应用程序又没有 “当失去焦点的时候,重新设回”的操作。

通过xdotool查看当前焦点所在进程,不管怎么操作,都是指向我们的进程,说明不可能有其他进程后台来“夺”焦点。

那跟openbox又有什么关系?

来看下openbox是什么,干什么的。

Openbox 是运行于搭载X11的GNU/Linux上的轻巧窗口管理器。是个窗口管理器,管理哪些窗口在前面后面之类,当然也涉及到一些焦点

另外,

如果出现以上现象

kill openbox

然后,现象就好了

关系肯定有的,但不知道为什么会导致这个现象?

 类似资料: