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

Daniel van Vugt

Recent revisions

3421. By Daniel van Vugt on 2012-10-16

Templates relating to CompRegion should only be instantiated in core and
never in any plugins.
(LP: #1067218)

Note: This required removing -std=c++0x from the opengl plugin. That flag
was causing opengl to have slightly different symbol requirements to the
template instance in core. Not that it matters because -std=c++0x appears to
have been unused by opengl.

3420. By Daniel van Vugt on 2012-10-16

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 on 2012-10-16

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).

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 on 2012-10-16

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 on 2012-10-15

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 on 2012-10-15

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 on 2012-10-15

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:
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 on 2012-10-12

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 on 2012-10-11

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 on 2012-10-09

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:
This branch contains Public information 
Everyone can see this information.