[FFE] Port GTK Window Decorator to GSettings

Bug #1042323 reported by Sam Spilsbury on 2012-08-27
This bug affects 11 people
Affects Status Importance Assigned to Milestone
Sam Spilsbury
compiz (Ubuntu)

Bug Description

We have written a compizconfig backend which uses GSettings, however gtk-window-decorator still uses GConf, so we cannot drop the gconf dep from the compiz source completely. gtk-window-decorator should also be using GSettings. Tests need to be included.

== CHANGE ==

Refactors the settings code in gtk-window-decorator to use an abstract intermediate object GWDSettings which provides the necessary interfaces for the settings storage backend to update the decorator when necessary. Provides two backends for usage - a GConf backend (based on the old code) and a GSettings Backend


Test suite included, coverage report attached to bug when complete

== WHY? ==

We want to drop the gconf dep from the compiz source package. We don't want to depend on metacity gconf keys which are being removed


Reintroduce metacity gconf keys, revert to gconf code

Related branches

Changed in compiz:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Sam Spilsbury (smspillaz)
milestone: none →
description: updated
summary: - Port GTK Window Decorator to GSettings
+ [FFE] Port GTK Window Decorator to GSettings
Andrew Gunnerson (cxl) wrote :

From the CMakeLists.txt files, support for metacity themes seems to be optional, but gtk-window-decorator fails to build when USE_METACITY is undefined (ie. when metacity headers are not installed or if support is explicitly disabled).

Here's the build log (built with CMAKE_VERBOSE_MAKEFILE so the errors are visible): http://ompldr.org/vZmM4OQ/compiz-build.log

Andrew Gunnerson (cxl) wrote :

By the way, gtk-window-decorator links with libgtk_window_decorator_settings_notified_interface.so, which doesn't get installed.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in compiz (Ubuntu):
status: New → Confirmed
Sam Spilsbury (smspillaz) wrote :

Hi cxl.

I've linked branches that fix the issues you describe. Thanks for pointing them out. As for the .so linking issue - I explicitly don't use shared libraries in this part of the code - everything is static and linked directly into gtk-window-decorator. Can you explain in more detail what's not installed and why that's an issue?

Dave Walker (davewalker) wrote :

Release Team ACK

Discussed with the desktop team, and this seems to be a wanted feature. If this could land shortly after beta release, it would be better.


Changed in compiz (Ubuntu):
status: Confirmed → Triaged
Changed in compiz:
milestone: →
Changed in compiz:
milestone: →
status: Confirmed → In Progress
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz at revision 3360

Changed in compiz:
status: In Progress → Fix Committed
Changed in compiz:
status: Fix Committed → Fix Released
Andrew Gunnerson (cxl) wrote :

Hi Sam,

Thanks for the reply! You were right about the shared library. I'm actually packaging for Fedora, which builds with "-DBUILD_SHARED_LIBS:BOOL=ON" by default. When I build compiz manually, all is fine.

My fault, sorry :)

Changed in compiz (Ubuntu):
importance: Undecided → High
milestone: none → ubuntu-12.10-beta-2
Kate Stewart (kate.stewart) wrote :

Please confirm that this will make it into beta 2, otherwise FFE will need to be revisited.

Launchpad Janitor (janitor) wrote :
Download full text (5.2 KiB)

This bug was fixed in the package compiz - 1:

compiz (1: quantal-proposed; urgency=low

  [ Sam Spilsbury ]
  * debian/python-compizconfig.install
    - Install compizconfig-python.pc
  * debian/patches/100_expo_layout.patch
    - re-add the expo layout that used to be in precise (LP: #1047067)
    - add some testcases

  [ Timo Jyrinki ]
  * New upstream snapshot.
    - Fix multiple window placement bugs (LP: #974242) (LP: #976032)
    - Don't waste CPU looping through and looking at all the windows if you're
      rendering an output that has no damage on it. (LP: #1014986)
    - Updated convert files to fix some typos in the key names. (LP: #1041631)
    - Fix crash when imgsvg is loaded, due to missing symbol
      (decor_apply_gravity from libdecoration). (LP: #956986)
    - Treat unresolved symbols at link time as an error, rather than letting
      them through and cause strange crashes later. (LP: #1043143)
    - Refactors a little bit of the upgrade code and gets it under test to
      prepare to fix (LP: #1042537)
    - Updated AUTHORS from the full bzr log, and re-sort the list.
      (LP: #1042095)
    - Fixes FTBFS for kde4-window-decorator (LP: #1041310)
    - Fix obvious omissions from the introduction of unminimize_*,
      which were causing the unminimize animation settings to be ignored
      (LP: #1040455)
    - resize plugin: don't crash if resize wasn't initiated externally
      (LP: #1045191)
    - Clean up capitalization (LP: #1045652)
    - Avoid division by zero, if plugins try to deform a window down to size
      zero. (LP: #1045235)
    - Make "Unredirect Fullscreen Windows" more reliable. This fixes the
      problem with unredirection failing to engage at all (LP: #1041066) when
      gtk-window-decorator creates offscreen windows that are stacked on top.
      This also fixes the problem with unredirect hiding all windows,
      because it thinks the desktop window should be stacked on top
      (LP: #980663).
    - Ensure unredirected windows don't stay unredirected if they're no longer
      on top. (LP: #1041047)
    - Fix launching terminal functionality and make show-hud default key
      visible. Update the defaults to org.compiz.integrated to reflect the
      actual gnome values pre-gnome-3. (LP: #1040081) (LP: #1046199)
      (LP: #1046190)
      (LP: #1046212)
    - Fixed: Windows with an alpha-channel, like gnome-terminal, were not
      being considered as possibly covering fullscreen windows. But they most
      certainly can. This ensures such RGBA windows are visible if they're
      stacked above a fullscreen window. (LP: #1046661)
    - Remove ListToStringList (LP: #1046184)
    - Fix typo causing CMake Error (LP: #1045665)
    - Transitions gtk-window-decorator over to use GSettings. Add a testing
      framework for the options code. (LP: #1042323)
    - Also need kdeworkspace since kdecorationbridge.h is there
      (LP: #1046770)
    - Implements some cleanup that was suggested on the merge for the original
      port to gsettings. Other issues fixed as wel...


Changed in compiz (Ubuntu Quantal):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers