lp:~unity-team/compiz-core/compiz-core.fix_767095
- Get this branch:
- bzr branch lp:~unity-team/compiz-core/compiz-core.fix_767095
Branch merges
- Jason Smith (community): Approve
- Sam Spilsbury: Pending requested
-
Diff: 197 lines (+44/-55)2 files modifiedsrc/event.cpp (+6/-41)
src/window.cpp (+38/-14)
Related bugs
Related blueprints
Branch information
Recent revisions
- 2740. By Sam Spilsbury
-
Read the current override redirect state as the client may have
changed it while CreateNotify is being processed and thus
we could be reparenting and override redirect window.Also ensure that when unreparenting windows that their
parent is still the wrapper window, otherwise
don't bother to reparent them back into the root
window, this will only cause trouble.Fixes LP#767095
- 2739. By Sam Spilsbury
-
XSync right after configureXWindow in cases where we
need to immediately reorder the window stack.This isn't a real fix, but at least fixes the following situation without
breaking the API and ABIWindows stacked A, B, C
Plugin does: C->raise (), B->raise (), A->raise ()
Window list should read at this point: ... C, B, A ... (screen->windows ())
However, the output buffer hasn't been flushed at this point
so server side we will have A, B, C.Now if a sneaky client tries to restack A above C, we will get the
ConfigureRequest for that, and instead of getting B, C, A like the client
expects, we'll actually get C, B, A.The real solution is to have a list of windows last sent to the server
and a list of windows last recieved by it. That way plugins can
mess with the internal stack all they want, but when recieving
events for X as to the actual state of things, they can restack relative
to the server list.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:compiz-core/trunk