FVWM:有条件地使 xterm 保持领先

FVWM:有条件地使 xterm 保持领先

算法:如果当前没有窗口位于顶部,则使下一个新的 xterm 保持在顶部(第 6 层)。

我让它工作:

Module FvwmEvent

AddToFunc MyUpdate
+ I WindowStyle StaysOnTop

AddToFunc MyUpdateIfXterm
+ I Current ("XTerm") MyUpdate

AddToFunc MyUpdateIfLayer6Empty
+ I None (Layer 6) MyUpdateIfXterm

*FvwmEvent: Cmd
*FvwmEvent: add_window MyUpdateIfLayer6Empty

Style * ClickToFocus

现在,我希望顶部的 xterm 也没有标题,因此我将第四行更改为:

+ I WindowStyle StaysOnTop, NoTitle

然而,这会阻止 xterm 到达顶部。看起来已经StaysOnTop 停止工作了。

我遇到错误了吗?如果是这样,有解决方法吗?

版本:

$ fvwm --version
fvwm 2.6.5 compiled on May 15 2014 at 22:08:55
with support for: ReadLine, Stroke, XPM, PNG, SVG, Shape, XShm, SM, Bidi text, Xinerama, XRender, XCursor, XFT, NLS

答案1

UpdateStyles将窗口移动到顶部后立即插入即可达到目的:

AddToFunc MyUpdate
+ I WindowStyle StaysOnTop
+ I UpdateStyles
+ I WindowStyle NoTitle

来自文档:

延迟执行命令

注意:有许多命令会影响特定、部分或所有窗口的外观和感觉,例如样式、鼠标、颜色集、标题样式以及许多其他人。出于性能原因,此类更改不会立即应用,而是仅在 fvwm 空闲时应用,即没有待处理的用户交互或模块输入。具体来说,新风格函数中设置的选项只有在函数完成后才会应用。这有时会导致不必要的影响。

要强制立即应用所有挂起的更改,请使用 更新样式,刷新或者刷新窗口命令。

相关内容