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

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

3495. By Sam Spilsbury

Use abort () instead of assert (0); The latter doesn't seem to work
sometimes, and really, we want to abort (), the test assumes it.

(LP: #1085687)

3494. By Didier Roche-Tolomelli

Bump ABI version as tests on the staging ppa showed it changed.

Approved by Stephen M. Webb.

3493. By Didier Roche-Tolomelli

Bump changelog to be > at the previous release that was already backported.

Approved by Martin Mrazik.

3492. By Daniel van Vugt

When dragging a window between workspaces, don't warp the pointer by a
mysterious 10 pixels. Instead warp the pointer by 1 so it goes from one edge
to the next without getting ahead of the window drag. (LP: #201681). Fixes: https://bugs.launchpad.net/bugs/201681.

Approved by Brandon Schaefer, PS Jenkins bot.

3491. By Sam Spilsbury

Provide infrastructure for testing the ccsSet* functions

Provide infrastructure for testing value containers.

It will be useful for later tests to be able to specify a value and allow
the use of templates to automatically create a CCSValue for those. These value
containers handle the tricky issues around how those values have their
lifecycles managed, as every value needs a valid parent setting in order
to be destroyed properly (as type information is stored in the parent
setting).

ContainNormal and ContainList are convenience functions which forward
to NormalValueContainer and ListValueContainer.

NormalValueContainer will wrap a normal "raw" value and provide a means to
construct a CCSValue on-demand and a way to get the raw value.

ListValueContainer will wrap a normal "raw" value as the first member of
a CCSSettingValueList, safely wrap that in a SettingValueListWrapper and
then provde a means to construct a CCSValue from that on-demand and a way
to get the raw CCSSettingValueList.

Both use RawValueCopy in order to handle internal value copy semantics
properly.

RawValueCopy returns a copy of the "raw" value (i.e. not another
CCSSettingValue), doing deep copies as appropriate. It is implemented
as a series of template specializations to handle some of the various
pointer types, such as const char * and CCSSettingValueList.

Also provide SetWithDisallowedValue template + specializations

It will be useful in future to provide methods in the tests to set a
value which would otherwise be disallowed because it is out of range for
a particular type. The actual out-of-range error varies between the
types, so we need to provide some specializations for some of the
different types

Also expose ccsCopyInfo and separate ccsCopyValueInto from ccsCopyValue. The
latter returns a newly allocated copy of the value, the former deep-

There was a bug in ccsCopyInfo which caused the copy-from info to be
overwritten with the copy-to info. That was fixed.

There are no tests at present. The testing framework for this will be
quite similar to what we need to test settings, and will be adapted for
that purpose in testing this code. Fixes: https://bugs.launchpad.net/bugs/1063617.

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

3490. By Andrea Azzarone

== Problem ==
Bug #781931: New windows are moved to front but don't take focus.

When a window is not allowed to get the focus Compiz should stack it below the active window. Due to avoidStackingRelativeTo Compiz fails to do it:

bool
PrivateWindow::avoidStackingRelativeTo (CompWindow *w)
{
    if (w->overrideRedirect ())
 return true;

    if (w->destroyed ())
 return true;

    if (!w->priv->shaded && !w->priv->pendingMaps)
    {
 if (!w->isViewable () || !w->isMapped ())
     return true;
    }

    return false;
}

This is because avoidStackingRelativeTo is called before the window get mapped, so it returns TRUE.

== Fix ==
This branch adds receivedMapRequestAndAwaitingMap.

== Test ==
Xorg-gtest added. Fixes: https://bugs.launchpad.net/bugs/781931.

Approved by PS Jenkins bot, Sam Spilsbury.

3489. By Sam Spilsbury

Strip trailing whitespace from pkg-config output (LP: #1084096). Fixes: https://bugs.launchpad.net/bugs/1084096.

Approved by Daniel van Vugt, PS Jenkins bot, Andrea Azzarone.

3488. By Iven Hsu

Add appmenu support for KWD. (LP: #1082265). Fixes: https://bugs.launchpad.net/bugs/1082265.

Approved by Daniel van Vugt.

3487. By Daniel d'Andrada

Point to compiz library dir in compiz.pc Libs section
Otherwise linkers won't be able to find, let say, -lcompiz_core if compiz is
installed outside /usr. (LP: #1084162). Fixes: https://bugs.launchpad.net/bugs/1084162.

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

3486. By Sam Spilsbury

Refactored CCSSettingDefaultImpl construction - export a
ccsSettingDefaultImplNew which can be provided custom methods on how to
initialize setting default values and info (eg, XML, ProtoBuf or Mock).

Added a simple construction test to prove that it works. Fixes: https://bugs.launchpad.net/bugs/1063617.

Approved by Daniel van Vugt.

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.