[FZH] F16下fvwm和VirtualBox的问题

alick alick9188 at gmail.com
Sun Jan 8 06:13:43 UTC 2012


于 2012年01月08日 00:17, alick 写道:
> 
> 很奇怪的现象,只在 fvwm 下使用 VirtualBox 时点击虚拟机中系统时出现。
> 新近发现,使用 Chrome (Linux)时,点击地址栏的home主页图标、tab标签页时
> 鼠标指针也会自动跑到中央。然而在别处都正常 -_-
> 
> 纠正一点,鼠标其实是自动移到“窗口中央”,而非屏幕中央。我缩小程序窗口后
> 发现的。
> 

问题得到定位了,在这些程序中鼠标左键做上述点击时,FVWM 都会调用
EWMHActivateWindowFunc 这个函数。而我重定义了这个函数,使得
调用它之后自动把鼠标位置移到窗口中央(WrapToWindow)。

所以 walkaround 很简单,把 WrapToWindow 这行自定义的动作取消(删除),
就不会有上述怪现象了。

但是,这只是一个 walkaround,不是 fix。因为根据 FVWM 手册,
EWMHActivateWindowFunc 这个函数的调用是在 WM 接到 客户程序发出的
_NET_ACTIVATE_WINDOW 消息时调用的,一般是在 EWMH 兼容的任务栏中
点击某个代表某窗口的图标(如gnome-panel的窗口列表)时调用的。
我觉得 Chrome, VirtualBox 这里似乎没有必要发送这个消息(从而调用这个函数)。

google 了下,如果有人不想删除(即不想对所有程序禁用移动鼠标),可以试试 [1]
中的方法:(EWMHActivateWindowFunc 中加入条件测试)
    Style Program1 State 23
    Style Program2 State 23

    DestroyFunc EWMHActivateWindowFunc
    AddToFunc  EWMHActivateWindowFunc
    + I ThisWindow (State 23) Break
    + I Focus
    + I Raise
    + I ....
我个人不打算这么做,因为我使用 FVWM 自带的 TaskBar 模块中的窗口列表
来切换不同的窗口,它是用不到 EWMH 开头的这个函数的 :)

[1] http://fvwmforums.org/phpBB3/viewtopic.php?f=6&t=2836

-- 
alick
Fedora 16 (Verne) user
https://fedoraproject.org/wiki/User:Alick


More information about the Chinese mailing list