lp://qastaging/~compiz-team/compiz/compiz.fix_1048964

Created by Sam Spilsbury and last modified
Get this branch:
bzr branch lp://qastaging/~compiz-team/compiz/compiz.fix_1048964
Members of Compiz Maintainers can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Compiz Maintainers
Project:
Compiz
Status:
Merged

Recent revisions

3385. By Sam Spilsbury

Detect python version in a way that works on 2.6

3384. By Daniel van Vugt

Don't accidentally unredirect a maximized window that's not a fullscreen
window. This could happen when other windows (docks) perfectly covered the
non-maximized region, like the Unity launcher and panel do.
(LP: #1053902)
. Fixes: https://bugs.launchpad.net/bugs/1053902. Approved by Sam Spilsbury, jenkins.

3383. By Daniel van Vugt

Ensure unredirected windows get redirected if windows are being transformed,
like in scale mode.
(LP: #1047168)
. Fixes: https://bugs.launchpad.net/bugs/1047168. Approved by Sam Spilsbury.

3382. By Sam Spilsbury

This adds a system testing framework based on Xorg-GTest (launchpad.net/xorg-gtest). It will find an existing installation of xorg-gtest and compile it locally (similar to Google Test) and provides a class XorgSystemTest in the namespace compiz::testing, which will spawn compiz inside of a dummy X Sever. You can then test by interacting with the server and querying its state.

XEventMatcher is a very basic concept for matching X events as they come in. Right now, the events have to be matched in order, but its feasible that in future we could have out of order matching like we do in Google Mock. Some utility functions added on top of xorg-gtest were WaitForEventOfTypeOnWindow, which works just like the former function by checks if it matches a window or satisfies some arbitrary criteria in the case of WaitForEventOfTypeOnWindowMatching.. Fixes: . Approved by Daniel van Vugt, jenkins.

3381. By Daniel van Vugt

Changes to the composite output window's shape seem to take a full frame to be
realized by GLX/the server. This results in a single frame of flicker when an
unredirected window gets redirected, but the shape change is still not
realized.

To work around this flicker, just skip the one frame where it's going to
occur so you never see it.
(LP: #1046664)
. Fixes: https://bugs.launchpad.net/bugs/1046664. Approved by Sam Spilsbury, jenkins.

3380. By Didier Roche-Tolomelli

fix missing ABI bump

3379. By Sam Spilsbury

Fix FTBFS with BUILD_GLES. Fixes: https://bugs.launchpad.net/bugs/1052838. Approved by Daniel van Vugt, jenkins.

3378. By Sam Spilsbury

Check the pending frame of the window when looking to see if it is a "toplevel" window. There was a case where calling updateAttributes on a just-reparented window which hadn't yet got the ReparentNotify event for its frame window would cause subsequent calls to reconfigureXWindow which want to restack relative to it to fail because that frame window wasn't marked as "existing" yet, so we would detect that case as restacking relative to an invalid window and prevent the restack request.. Fixes: https://bugs.launchpad.net/bugs/1052773. Approved by Daniel van Vugt, Brandon Schaefer, jenkins.

3377. By Daniel van Vugt

Fix flickering and performance problems with using Unredirect Fullscreen
Windows with multiple monitors.
(LP: #1050749) (LP: #1051885)

Written by smspillaz. Simplified by vanvugt.. Fixes: https://bugs.launchpad.net/bugs/1050749, https://bugs.launchpad.net/bugs/1051885. Approved by Sam Spilsbury, Daniel van Vugt.

3376. By Sam Spilsbury

Check that pixmaps which aren't managed by us actually exist before binding.

It was possible for there to be a race condition for a pixmap to become
invalid on the server side if the client which did have control over thier
lifecycle freed them before we were done with them or disconnected. Drivers
have normally handled this condition by reading the contents of the undefined
memory directly without an error, however drivers such as LLVMpipe will
effectively dereference an invalid pointer and crash when you do this.

LP: #927168:
compiz crashed with SIGSEGV in
memmove() from
drisw_update_tex_buffer() from
dri_set_tex_buffer2() from
drisw_bind_tex_image() from
__glXBindTexImageEXT() from
TfpTexture::enable()

Most of the time we don't need to employ this check. Its only when we know
that we don't control the lifecycle of a pixmap that race conditions
such as these can occur.. Fixes: https://bugs.launchpad.net/bugs/927168. Approved by Daniel van Vugt, jenkins.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp://qastaging/compiz/0.9.8
This branch contains Public information 
Everyone can see this information.