lp:~vanvugt/compiz/fix-1087193

Created by Daniel van Vugt and last modified
Get this branch:
bzr branch lp:~vanvugt/compiz/fix-1087193
Only Daniel van Vugt can upload to this branch. If you are Daniel van Vugt please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Daniel van Vugt
Project:
Compiz
Status:
Merged

Recent revisions

3511. By Daniel van Vugt

Fixed windows not responding to input if XShape is disabled/absent.
It was a simple copy/paste error; passing nInput=0 instead of nInput=1 to:
    priv->inputRegion += rectsToRegion (nInput, inputShapeRects);
(LP: #1087193)

3510. By Matija Skala

Fixed: findcompiz_install doesn't work (LP: #1051595)
Author: Matija Skala <email address hidden>
. Fixes: https://bugs.launchpad.net/bugs/1051595.

Approved by Daniel van Vugt.

3509. By Jussi Pakkanen

Fix definition of compiz.desktop. (LP: #1086789). Fixes: https://bugs.launchpad.net/bugs/1086789.

Approved by Daniel van Vugt, Sam Spilsbury, PS Jenkins bot.

3508. By Daniel van Vugt

Remove calls to eglWaitGL which are likely to hinder performance on GLES/ARM
platforms. The calls seem to be pointless and have a significant potential
impact on performance. Also remove XFlush in the same location, apparently
pointless.
(LP: #1086779)
. Fixes: https://bugs.launchpad.net/bugs/1086779.

Approved by Sam Spilsbury, PS Jenkins bot.

3507. By PS Jenkins bot

Releasing 1:0.9.9~daily12.12.05-0ubuntu1 to ubuntu.

Approved by .

3506. By Sam Spilsbury

Provided test fixtures for testing the setting ccsSet* functions

DefaultImplSetParam provides a "parameter" for testing different setting
types exposed through DefaultImplSetParamInterface .
DefaultImplSetFailureParam provides a "parameter" for testing failure
cases.

The test fixtures in this case set up some default values through the
stubInitializeSettingDefaultValue and stubInitializeSettingInfo
functions. This is verified through MockInitializerFuncsWithDelegators. Fixes: https://bugs.launchpad.net/bugs/1063617.

Approved by Sam Spilsbury, Daniel van Vugt.

3505. By Jussi Pakkanen

Explicitly check for the existence of pyrexc and error out if it is not found.
(LP: #1086704). Fixes: https://bugs.launchpad.net/bugs/1086704.

Approved by Daniel van Vugt, Sam Spilsbury, PS Jenkins bot.

3504. By Sam Spilsbury

Fix race condition causing --replace to fail occasionally.

Clear XErrors right before taking SubstructureRedirectMask.

This changes the startup order a fair bit. The new order is now:

1. Do non-critical initialization that does not require a server grab
2. Do the ICCCM check to shut down the other window manager
3. Take server grab
4. Create edge windows
5. Clear error buffer
6. Attempt to take SubstructureRedirectMask
7. Clear error buffer -> if fail, exit
8. Create handles based on XQueryTree
9. Release server grab

(LP: #1085591)

System test added to demonstrate that compiz should exit when another client has SubstructureRedirectMask and attempting to take it results in an X error. It wasn't doing that before, and instead checked for X errors much earlier on (in error, because an X error up there wouldn't indicate that another WM was running at all).

In order to make this work properly, some changes had to be made to compiz. This adds a new runtime switch --send-startup-message which simply posts a message to all clients saying that the startup procedure has finished (and either succeeded or failed). Its needed because the location of when we take the server grab was changed to a much smaller critical section of the code, and that doesn't include the property change on the selection window. This is a far more accurate way of knowing that we've started, because we send it /after/ the startup procedure is done (rather than relying on the server to do the right thing.

Also fixed race condition caused by destroying the WMSnSelectionWindow before shutdown.

 Because we haven't changed our active event mask
 to remove SubstructureRedirectMask, other ICCCM
 compliant window managers may receive a DestroyNotify
 (eg, because we're blocked on XSync) before we get
 a chance to close our display connection and remove
 our SubstructureRedirectMask. That will cause them
 to fail to start.

 The selection window is destroyed anyways when we
 close our connection, and that is a very accurate
 indicator to other WM's that we are well and truly
 gone because the protocol requires the implementation
 to remove all client event masks before destroying
 windows.

Added acceptance-tests for testing that behaviour. They are not added to the default test target for obvious reasons. Fixes: https://bugs.launchpad.net/bugs/1085591.

Approved by PS Jenkins bot, Daniel van Vugt.

3503. By MC Return

Minor Performance Optimizations:

* Return ASAP./Prevent executing any unnecessary operations if we return.
* Used De Morgan's laws to merge and simplify if statements.

Other Changes:

* C++ Style: Declared iterator variables inside the for loops they are used in.
* No logic changes have been made.

Approved by Daniel van Vugt.

3502. By Timo Jyrinki

Add Firefox to the unredirect exceptions. (LP: #1086337). Fixes: https://bugs.launchpad.net/bugs/1086337.

Approved by Daniel van Vugt, PS Jenkins bot.

Branch metadata

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

Subscribers