FVWM: Faça o xterm ficar no topo, condicionalmente

1

Algoritmo: Se não houver janela no topo, faça a próxima nova o xterm fica no topo (camada 6).

Eu tenho que trabalhar:

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

Agora, eu quero que o xterm no topo também fique sem título, então mudo o quarta linha para:

+ I WindowStyle StaysOnTop, NoTitle

Isso, no entanto, impede que o xterm chegue ao topo. Parece que StaysOnTop parou de funcionar.

Eu me deparei com um bug? Em caso afirmativo, existe uma solução alternativa?

Versão:

$ 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
    
por feklee 21.04.2015 / 23:30

1 resposta

0

Inserir UpdateStyles logo após mover a janela para o topo é o truque:

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

Da documentação:

Delayed Execution of Commands

Note: There are many commands that affect look and feel of specific, some or all windows, like Style, Mouse, Colorset, TitleStyle and many others. For performance reasons such changes are not applied immediately but only when fvwm is idle, i.e. no user interaction or module input is pending. Specifically, new Style options that are set in a function are not applied until after the function has completed. This can sometimes lead to unwanted effects.

To force that all pending changes are applied immediately, use the UpdateStyles, Refresh or RefreshWindow commands.

    
por 22.04.2015 / 10:46