lp:~sjakthol/compiz/fix-839602

Created by Sami Jaktholm and last modified
Get this branch:
bzr branch lp:~sjakthol/compiz/fix-839602
Only Sami Jaktholm can upload to this branch. If you are Sami Jaktholm please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Sami Jaktholm
Project:
Compiz
Status:
Merged

Recent revisions

3418. By Sami Jaktholm

The grid resize hint overlay doesn't disappear when the window is
moved along the edge from a region that has a resize action set to a
region without one (LP: #839602).

When the edge changes, grid calculates the target rectangle for the
transformation. The previous overlay will be destroyed only if the
new target rectangle is different from the previous target rectangle.
But when the target is GridUnknown (the action for the region has set
to be None), initiateCommon bails out right away leaving the target
rectangle unchanged. And thus grid thinks nothing has changed and
the old overlay is left intact.

The fix resets the target rectangle to be at (0, 0) with height and
width of 0. As the previous rectangle is now different from the new
one, the old overlay will fade out. The same technique is used to
destroy the overlay when the window is moved away from the target region.

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.

3411. By Daniel van Vugt

Fix leakage of destroyed_pixmaps_table, containing pointers to freed decor_t's
which could result in a freed GHashTable being passed into g_hash_table_remove
and causing a crash.
(LP: #1060171). Fixes: https://bugs.launchpad.net/bugs/1060171. Approved by Sam Spilsbury.

3410. By Sam Spilsbury

Check the return value of pkg_check_modules and don't check for
libcompizconfig_internal (LP: #1060708). Fixes: https://bugs.launchpad.net/bugs/1060708. Approved by Daniel van Vugt.

3409. By Sam Spilsbury

Slightly more verbose matchers for CCSSettingValue so we can see what's going wrong in the tests.. Fixes: . 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