Hi,

> This adds an argument to the raise/lower/restackBelow/restackAbove 
> window functions (default to false) which immediately reorders the 
> window list. This is needed to make the functions work as expected when 
> doing multiple restacks. Obviously, you would't be able to keep cycling 
> through the window list, so this should not be used in that situation 
> (as indicated in the comment in header).
> 
> This was needed to make my plugin (tag) work correctly. I have tried 
> going through the list of windows I need pulled in front: both forwards 
> and reverse, stacking above instead of below, raising bottom window 
> instead of top - and not been able to make any combination work 
> correctly. Even with maniac103's help I couldn't get it working ;)
> 
> maniac said that this was a fundamental problem with the stacking code, 
> and the whole lot needs to be looked over (iirc, or at least, something 
> similar). This may not be what is needed, but it at least works, and 
> doesn't affect anything else (only gives the ability to plugins which 
> need such a feature). Or is this solution a bit too hacky? 
> CompWindow::updateAttributes does something similar though. Comments?

TBH and FWIW, I don't like that patch in its current state. You're right 
that updateAttributes has similar stuff built-in, but there's a big 
difference: It's not part of any public API. IMO, we should not make 
hacks part of the API - and conditional immediate restack _is_ a hack.

I would prefer the 'real' fix (which you mentioned above). The current 
situation is:
- reconfigureXWindow is called, which calls XConfigureWindow
- after some time, ConfigureNotify arrives
- on ConfigureNotify, the internal stack is updated

The fix would be changing the code so it behaves as follows:
- reconfigureXWindow is called, which callx XConfigureWindow _and_ 
immediately updates the internal stack
- on ConfigureNotify, check if it matches the internal stack and re-sync 
the internal stack to X if it does not match

The change basically would be making Compiz' copy of the stack the 
primary one instead of X' copy. This would also automatically fix the 
flicker of switcher and staticswitcher which many people see on ending 
the switcher.

Regards,

Danny
_______________________________________________
Dev mailing list
Dev@lists.compiz-fusion.org
http://lists.compiz-fusion.org/mailman/listinfo/dev

Reply via email to