lp:~vanvugt/compiz/fix-1067219

Created by Daniel van Vugt and last modified
Get this branch:
bzr branch lp:~vanvugt/compiz/fix-1067219
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

3421. By Daniel van Vugt

Ensure template instances relating to CompRect are only instantiated in core
and never in any plugin.
(LP: #1067219)

3420. By Daniel van Vugt

Instantiate CompOption-related templates in core only. There's no need for
duplicates to be instantiated in plugins too.
(LP: #1066793) (LP: #1066803)

This not only reduces build times and will improve stability during plugin
reloads, but it also reduces the footprint of lib/compiz/* from 89MB to 75MB!
. Fixes: https://bugs.launchpad.net/bugs/1066793, https://bugs.launchpad.net/bugs/1066803. Approved by PS Jenkins bot, Sam Spilsbury.

3419. By Sami Jaktholm

Problem:
Specific Zoom Factor settings were ignored by the Enhanced Zoom Desktop
(LP: #1066187) because the values were only read once during initial load of
the plugin probably before the user defined configuration was read (and thus
it always used the default values).

Fix:
Instead of sending the (original) value of the initiated zoom level, send a
zoom level identifier. The identifier is used to determine which zoom level
the user wants and a fresh setting for that zoom level is used.

.. Fixes: https://bugs.launchpad.net/bugs/1066187. Approved by Daniel van Vugt, MC Return.

3418. By MC Return

Fixed/unified all xml.in headers.
(LP: #1066823)

Problem: Editors like gedit and others will not recognize *.xml.in files as xml, so if opened there is no syntax highlighting making those files harder to read.
This commit fixes this by adding <?xml version="1.0" encoding="UTF-8"?> to all *.xml.in files in lp:compiz. Fixes: https://bugs.launchpad.net/bugs/1066823. Approved by Daniel van Vugt.

3417. By Albert Astals Cid

Do not move windows between viewports/workspaces when changing its size
(e.g. maximizing). (LP: #776435)

.. Fixes: https://bugs.launchpad.net/bugs/776435. Approved by Daniel van Vugt, jenkins.

3416. By Sam Spilsbury

Don't trigger actions unless they are actually marked active. It is possible
that we may have a passive button grab for other reasons than actions being
bound, so actions which haven't been added should be ignored.
(LP: #1053280). Fixes: https://bugs.launchpad.net/bugs/1053280. Approved by jenkins, Daniel van Vugt.

3415. By Daniel van Vugt

Avoid duplicate template instantiations of PluginClassHandler<>, at least
for those plugins that get re-used by others.

Duplicate template instances are normally harmless and only cause binary
bloat. However if you have static members in an template like:
    PluginClassHandler<CompositeScreen,CompScreen,N>::mIndex
then that static variable also gets multiple separate instances. And the
version that a plugin uses depends entirely on the shared library load order
and load flags.

With clang, the OpenGL plugin was getting its own copy of the Composite
templates resulting in crash LP: #1065815. This is because clang compiles
mIndex to be a weak linkage symbol, so the dynamic loader at runtime chooses
which version to use. The crash does not happen with GCC because it compiles
mIndex to be a "unique" symbol (GNU extension), automatically avoiding
such duplicate problems.

More generally this possibly explains some crashes we see in and
around PluginClassHandler when plugins are toggled in CCSM. Although there
may be other templates that need similar fixes yet to resolve those.. Fixes: https://bugs.launchpad.net/bugs/1065815. Approved by Sam Spilsbury, jenkins.

3414. By Daniel van Vugt

Don't try writing to const static memory. Any sane compiler like clang will
put const static data into a read-only memory section. This means any write
to it will segfault.
(LP: #1065814)
. Fixes: https://bugs.launchpad.net/bugs/1065814. Approved by Sam Spilsbury, jenkins.

3413. By Sam Spilsbury

Added tests for the StringToModifiers and ModifiersToString code, move the
code which detects <Primary> as ControlMask upstream and use two functions to
ensure that duplicates aren't added.

Fixes Jenkins failures. (LP: #1058577). Fixes: https://bugs.launchpad.net/bugs/936840, https://bugs.launchpad.net/bugs/1058577. Approved by Daniel van Vugt, Sam Spilsbury.

3412. By Sam Spilsbury

Fix numerous problems with invalid C/C++ code that prevent us from building
with clang/clang++.
(LP: #1060804). Fixes: https://bugs.launchpad.net/bugs/1060804. 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.

Subscribers