lp:~compiz-team/compiz/compiz.fix_1056409

Created by Sam Spilsbury and last modified
Get this branch:
bzr branch lp:~compiz-team/compiz/compiz.fix_1056409
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

3622. By Sam Spilsbury

Fix another typo -.-{

3621. By Sam Spilsbury

Fix typo

3620. By Sam Spilsbury

Don't set nQuad to a positive number for WINDOW type decorations

(LP: #1056409)

3619. By Sam Spilsbury

Fix startup issues

Amalgamated changes:

0. Re-set the setting parents correctly after an upgrade
1. Move the backend loading and config file handling code into separate objects, we need to inject them by interface in order to isolate CCSContextDefaultImpl for testing
2. Add the ccp plugin to "initialPlugins" rather than setting the option directly, that never worked.
3. Added some framework to force-import any profile available in the system config dirs and not reported as existing by the backing. This is so that we have a guaruntee that we will get its values
4. Bail out correctly when a schema couldn't be found

(LP: #1130679). Fixes: https://bugs.launchpad.net/bugs/1130679.

Approved by Brandon Schaefer, PS Jenkins bot, Ɓukasz Zemczak.

3618. By Sam Spilsbury

Redesign the optional pixmap deletion protocol to make the consumer responsible for deleting the pixmaps.

The previous optional protocol had the consumer send a message back to the producer when a pixmap was ready to be deleted, and then the producer would take it from its pool of pixmaps marked for deletion and delete it there. That protocol did not really work out in practise though, because of a race condition where the consumer would never become aware of a new pixmap (because the new pixmap value was read synchronously instead of delivered asynchronously) and then that pixmap would just sit there in the consumer's memory and never be deleted. The new optional protocol makes the consumer responsible for freeing the pixmap once the producer has marked it ready for deletion. That way the consumer can keep on using the pixmap until it needs to delete it. This is important on drivers that use loose binding, because the texture contents are undefined as soon as the pixmap is freed on the server side.

In order to represent that, there were a few new objects added. The first is a "communicator" object which handles all of the requests that come from the decorator through ClientMessage events and dispatch to the right place. The next are the individual message handlers, which determine whether or not the pixmap can be deleted immediately or if it should go into the pixmap release pool. The final is the release pool, which stores in-use pixmaps in a list which can then be marked for deletion when the texture they are bound to goes away.

Unit and Integration tests were added to demonstrate the code and protocol behaviour.

(LP: #1119608). Fixes: https://bugs.launchpad.net/bugs/1119608.

Approved by Brandon Schaefer, PS Jenkins bot.

3617. By Sam Spilsbury

Enable copytex by default and stick the upgrades in the right place

(LP: #1130160). Fixes: https://bugs.launchpad.net/bugs/1130160.

Approved by Michael Terry.

3616. By Sam Spilsbury

Make sure to update the frame extents when clients ask us to (LP: #1110138). Fixes: https://bugs.launchpad.net/bugs/1110138.

Approved by Andrea Azzarone, PS Jenkins bot, MC Return.

3615. By Michael Terry

Fix order of some manually-entered changelog entries.

Approved by Didier Roche.

3614. By MC Return

Changed snprintf type from %d to %u, because i is of type unsigned int.

Approved by Sam Spilsbury.

3613. By PS Jenkins bot

Releasing 1:0.9.9~daily13.02.19-0ubuntu1 to ubuntu.

Approved by 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.