Created by Sam Spilsbury on 2012-04-16 and last modified on 2012-04-16
Get this branch:
bzr branch lp:~smspillaz/compiz-core/compiz-core.decor_dont_be_stupid
Only Sam Spilsbury can upload to this branch. If you are Sam Spilsbury please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Sam Spilsbury
Compiz Core

Recent revisions

3091. By Sam Spilsbury on 2012-04-16

Merge trunk

3090. By Sam Spilsbury on 2012-04-16

When checking to see if the window can be reparented into
we care about the input extents not the border extents.

3089. By Sam Spilsbury on 2012-04-16

Set the frame extents to 0,0,0,0 before updating the frame so that the
frame window is properly removed. Otherwise the frame window will be
implicitly destroyed by XDestroyWindow and set to None during unreparent
and we won't remove the reference to the input window because it looks
like the window is still reparented.

3088. By Sam Spilsbury on 2012-04-11

Check outputRect when deciding whether to ignore custom clip regions.

It was possible for menus for repaint regions to never cover shadowRegion
which would mean that we'd never pass the shadow clip rects to

In reality, we only really care about not using shadowRegion in cases
where some plugin wants to paint us with an offset region which is actually
outside the window.

Fixes LP#978900

3087. By Sam Spilsbury on 2012-04-06


3086. By Sam Spilsbury on 2012-04-05

Remove DecorWindow::computeShadowRegion and replace with a smarter class.
(LP: #969101)

DecorClipGroup (split into GenericDecorClipGroup and MatchedDecorClipGroup)
take a DecorClippableInterface which where entry and exit from the group is
guarded by the implementation and are treated as one layer for the purposes
of shadowing - eg the input region of each member of the clip group will clip
all of the shadows of the members, so that none of the members appear to be

This algorithm is a lot more optimized in that the shadows are only updated
when relevant windows are updated.

Tested too.

3085. By Sam Spilsbury on 2012-04-05

Stab in the dark (a possible but unconfirmed fix for LP: #940603)

I think whats going on for bug 940603 is that windows aren't being removed
from the window list if they are unreparented by the application itself in
very special circumstances (not sure what because I can't reproduce the bug).

This code adds some more sound checks to see where the window is going and
destroys it based on that, rather than using the same logic for both
reparented and unreparented windows.

Also removed the whole destroyedFrameWindows tracking code which was more or
ineffectual and could potentially result in a frame window leak.

3084. By Sam Spilsbury on 2012-04-01

Use gtest_add_tests and format the code so that it picks them up

3083. By Andrea Azzarone on 2012-04-01

Change the behavior of the option "On all output devices" such that windows
spread on the monitor on which they reside. (LP: #919139)

3082. By Alan Griffiths on 2012-04-01

Fix memory leak in dlloaderListPlugins (LP: #968985)

Branch metadata

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