summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Bos2016-10-15 10:28:10 +0100
committerCharles Bos2016-10-15 10:28:10 +0100
commit5dcba6575d1a418885d11319c82de060b6e8d1cb (patch)
tree0253fc52dee52cedb5e7cddd240a58f92c3488da
parent874674019677d45625f9b5f5a5830856f2ef11df (diff)
downloadaur-5dcba6575d1a418885d11319c82de060b6e8d1cb.tar.gz
metacity 3.22 support. don't revert r3981 wholesale; only reverse the plugin config changes
-rw-r--r--.SRCINFO10
-rw-r--r--3981_3980.diff2567
-rw-r--r--PKGBUILD15
-rw-r--r--metacity322-branch-rollup.patch1617
-rw-r--r--reverse-unity-config.patch869
5 files changed, 2502 insertions, 2576 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f9bd04f49495..bc81f516c7cf 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Thu Aug 25 21:56:04 UTC 2016
+# Sat Oct 15 09:07:14 UTC 2016
pkgbase = compiz
pkgdesc = Composite manager for Aiglx and Xgl, with plugins and CCSM
pkgver = 0.9.13.0
- pkgrel = 7
+ pkgrel = 8
url = https://launchpad.net/compiz
arch = i686
arch = x86_64
@@ -54,12 +54,14 @@ pkgbase = compiz
source = focus-prevention-disable.patch
source = gtk-extents.patch
source = trailfocus-fix.patch
- source = 3981_3980.diff
+ source = reverse-unity-config.patch
+ source = metacity322-branch-rollup.patch
sha256sums = f08eb54d578be559e3e723f3fe4291a56f5c96b2fdfb9c9e74ebb6596a1ca702
sha256sums = f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b
sha256sums = 16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9
sha256sums = 01e94ac52cd39eb5462a8505c7df61c7b14b05159de64f8700dfadb524bdb2ce
- sha256sums = 36781e0eebdb6f0b4b29bb69e9aa342688e48ea0a6fb14dff60e00a3cf74815d
+ sha256sums = 97778fde6eff779e10a03f5c03f26ffdda8bdb89091956fee19ce84d7d8c9ef9
+ sha256sums = 4deb954e539853ab5297d0603b1dd7ce72361425d7d88e4e49c9351d91bf0a91
pkgname = compiz
diff --git a/3981_3980.diff b/3981_3980.diff
deleted file mode 100644
index 7dac98a2b51f..000000000000
--- a/3981_3980.diff
+++ /dev/null
@@ -1,2567 +0,0 @@
-=== modified file 'compizconfig/ccsm/ccm/Constants.py.in'
---- a/compizconfig/ccsm/ccm/Constants.py.in 2011-02-12 17:45:47 +0000
-+++ b/compizconfig/ccsm/ccm/Constants.py.in 2015-10-15 14:23:40 +0000
-@@ -23,6 +23,7 @@
- import pygtk
- import gtk
- import gtk.gdk
-+import os
-
- # Current Screen
- #
-@@ -66,6 +67,11 @@
- DataDir = "@prefix@/share"
- IconDir = DataDir+"/ccsm/icons"
- PixmapDir = DataDir+"/ccsm/images"
-+ConfigHome = os.getenv("XDG_CONFIG_HOME")
-+if not ConfigHome:
-+ ConfigHome = os.path.join(os.getenv("HOME"), ".config")
-+ConfDir = os.path.join(ConfigHome, "compiz-1/compizconfig/")
-+ConfFile = os.path.join(ConfDir, "firstrun")
-
- # Version
- #
-
-=== modified file 'compizconfig/ccsm/ccm/Settings.py'
---- a/compizconfig/ccsm/ccm/Settings.py 2014-04-11 15:37:49 +0000
-+++ b/compizconfig/ccsm/ccm/Settings.py 2015-10-15 14:23:32 +0000
-@@ -442,16 +442,10 @@
- self.Adj = gtk.Adjustment(0, info[0], info[1], inc, inc*10)
- self.Spin = gtk.SpinButton(self.Adj)
- self.Spin.set_value(self.Get())
--
-- self.Scale = gtk.HScale(self.Adj)
--
-- self.Scale.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
-- self.Scale.connect("value-changed", self.Changed)
- self.Spin.connect("value-changed", self.Changed)
-- self.Widget = self.Scale
-+ self.Widget = self.Spin
-
-- self.Box.pack_start(self.Scale, True, True)
-- self.Box.pack_start(self.Spin, False, False)
-+ self.Box.pack_end(self.Spin, False, False)
-
- def _Read(self):
- self.Adj.set_value(self.Get())
-@@ -465,7 +459,6 @@
- self.Inc = 1
- NumberSetting._Init(self)
- self.Spin.set_digits(0)
-- self.Scale.set_digits(0)
-
- class FloatSetting(NumberSetting):
-
-@@ -475,7 +468,6 @@
- self.Inc = None
- NumberSetting._Init(self)
- self.Spin.set_digits(4)
-- self.Scale.set_digits(4)
-
-
- class ColorSetting(StockSetting):
-
-=== modified file 'compizconfig/ccsm/ccm/Widgets.py'
---- a/compizconfig/ccsm/ccm/Widgets.py 2013-12-02 17:37:06 +0000
-+++ b/compizconfig/ccsm/ccm/Widgets.py 2015-10-15 14:23:49 +0000
-@@ -1371,6 +1371,42 @@
- self.set_transient_for (parent)
- self.connect_after ("response", lambda *args: self.destroy ())
-
-+# First run dialog providing a user warning.
-+#
-+class FirstRun (gtk.MessageDialog):
-+ '''First run dialog providing a user warning.'''
-+
-+ def __init__(self, parent):
-+ gtk.MessageDialog.__init__ (self, parent,
-+ gtk.DIALOG_DESTROY_WITH_PARENT,
-+ gtk.MESSAGE_WARNING,
-+ gtk.BUTTONS_OK)
-+ self.set_position (gtk.WIN_POS_CENTER)
-+ title = _("CCSM is an advanced tool. Use with caution.")
-+ self.set_markup("<b>%s</b>" % title)
-+ message = _("This tool allows you to deeply configure Compiz's settings. Some options may be incompatible with each other. Unless used with care, it is possible to be left with an unusable desktop.")
-+ self.format_secondary_markup(message)
-+ check_button = gtk.CheckButton(label=_("Show this warning next time?"))
-+ check_button.set_active(True)
-+ self.vbox.pack_start(check_button, True, True, 2)
-+ check_button.show()
-+ check_button.connect("toggled", self.callback, "check button 1")
-+ self.set_transient_for(parent)
-+ self.set_modal(True)
-+ self.show_all()
-+ self.connect("response", lambda *args: self.destroy ())
-+
-+ def callback(self, widget, data=None):
-+ if widget.get_active() == True:
-+ if os.path.isfile(ConfFile):
-+ os.remove(ConfFile)
-+ else:
-+ if not os.path.exists(ConfDir):
-+ os.mkdir(ConfDir)
-+ if os.path.isdir(ConfDir):
-+ f = open(ConfFile, "w")
-+ f.close()
-+
- # Plugin Button
- #
- class PluginButton (gtk.HBox):
-@@ -1401,7 +1437,11 @@
- button.set_tooltip_text (plugin.LongDesc)
- button.add (box)
-
-- if plugin.Name != 'core':
-+ blacklist_plugins = ['core']
-+ if os.getenv('XDG_CURRENT_DESKTOP') == 'Unity':
-+ blacklist_plugins.append('unityshell')
-+
-+ if plugin.Name not in blacklist_plugins:
- enable = gtk.CheckButton ()
- enable.set_tooltip_text(_("Enable %s") % plugin.ShortDesc)
- enable.set_active (plugin.Enabled)
-
-=== modified file 'compizconfig/ccsm/ccsm'
---- a/compizconfig/ccsm/ccsm 2012-05-16 17:44:14 +0000
-+++ b/compizconfig/ccsm/ccsm 2015-10-15 14:23:40 +0000
-@@ -31,6 +31,7 @@
- pygtk.require('2.0')
- import gtk
- import sys
-+import os
-
- def try_register_dbus ():
- '''Return instance of dbus control object on success, None on failure'''
-@@ -92,7 +93,7 @@
- import compizconfig
- import ccm
- from ccm.Utils import GlobalUpdater
--from ccm.Constants import Version
-+from ccm.Constants import Version, ConfFile
-
- plugin = None
- category = None
-@@ -124,4 +125,11 @@
- idle = ccm.IdleSettingsParser(context, mainWin)
- mainWin.show_all()
-
-+# Check if we should show the first run warning dialog.
-+if os.path.isfile(ConfFile):
-+ pass
-+else:
-+ warning = ccm.FirstRun(mainWin)
-+ warning.show_all()
-+
- gtk.main()
-
-=== modified file 'compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml'
---- a/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2014-03-04 20:00:28 +0000
-+++ b/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2015-10-15 14:23:22 +0000
-@@ -10,6 +10,9 @@
- <key type="s" name="command-screenshot">
- <default>"gnome-screenshot"</default>
- </key>
-+ <key type="as" name="run-command-21">
-+ <default>["&lt;Control&gt;&lt;Alt&gt;Delete"]</default>
-+ </key>
- <key type="as" name="run-command-12">
- <default>["Disabled"]</default>
- </key>
-@@ -46,6 +49,9 @@
- <key type="as" name="run-command-1">
- <default>["Disabled"]</default>
- </key>
-+ <key type="s" name="command-21">
-+ <default>"/usr/bin/gnome-system-monitor -p"</default>
-+ </key>
- <key type="s" name="command-12">
- <default>""</default>
- </key>
-
-#=== modified file 'debian/changelog'
-#--- a/debian/changelog 2015-10-02 00:31:48 +0000
-#+++ b/debian/changelog 2015-10-15 15:42:51 +0000
-#@@ -1,3 +1,9 @@
-#+compiz (1:0.9.12.2+15.10.20151012-0ubuntu1) UNRELEASED; urgency=medium
-#+
-#+ * Syncing changelog with proposed
-#+
-#+ -- Marco Trevisan (TreviƱo) <marco@ubuntu.com> Thu, 15 Oct 2015 16:42:12 +0100
-#+
-# compiz (1:0.9.12.2+15.10.20151002-0ubuntu1) wily; urgency=medium
-#
-# [ Eleni Maria Stea ]
-#
-=== removed directory 'debian/patches'
-=== removed file 'debian/patches/100_workaround_virtualbox_hang.patch'
---- a/debian/patches/100_workaround_virtualbox_hang.patch 2014-12-09 14:47:14 +0000
-+++ b/debian/patches/100_workaround_virtualbox_hang.patch 1970-01-01 00:00:00 +0000
-@@ -1,175 +0,0 @@
--Index: compiz/plugins/opengl/include/opengl/opengl.h
--===================================================================
----- a/compiz.orig/plugins/opengl/include/opengl/opengl.h 2014-03-03 15:29:29.898235681 +0100
--+++ b/compiz/plugins/opengl/include/opengl/opengl.h 2014-03-03 15:29:29.894235669 +0100
--@@ -590,6 +590,17 @@
--
-- extern GLScreenPaintAttrib defaultScreenPaintAttrib;
--
--+namespace compiz
--+{
--+namespace opengl
--+{
--+namespace internal
--+{
--+class DriverWorkaroundQuery;
--+}
--+}
--+}
--+
-- class GLScreen;
-- class GLFramebufferObject;
-- class GLScreenInterface;
--@@ -787,6 +798,13 @@
--
-- bool glInitContext (XVisualInfo *);
--
--+ /**
--+ * This is only meant to be used internally, here to avoid unnecessarily
--+ * breaking the API and ABI. Fetch any driver workarounds in place
--+ */
--+ const compiz::opengl::internal::DriverWorkaroundQuery &
--+ fetchDriverWorkarounds ();
--+
-- WRAPABLE_HND (0, GLScreenInterface, bool, glPaintOutput,
-- const GLScreenPaintAttrib &, const GLMatrix &,
-- const CompRegion &, CompOutput *, unsigned int);
--Index: compiz/plugins/opengl/src/privates.h
--===================================================================
----- a/compiz.orig/plugins/opengl/src/privates.h 2014-03-03 15:29:29.898235681 +0100
--+++ b/compiz/plugins/opengl/src/privates.h 2014-03-03 15:29:29.894235669 +0100
--@@ -47,6 +47,24 @@
--
-- extern CompOutput *targetOutput;
--
--+namespace compiz
--+{
--+namespace opengl
--+{
--+namespace internal
--+{
--+class DriverWorkaroundQuery
--+{
--+ public:
--+
--+ virtual ~DriverWorkaroundQuery () {};
--+
--+ virtual bool unsafeForExternalBinds () const = 0;
--+};
--+}
--+}
--+}
--+
-- class GLDoubleBuffer :
-- public compiz::opengl::DoubleBuffer
-- {
--@@ -141,6 +159,7 @@
-- public ScreenInterface,
-- public CompositeScreenInterface,
-- public compiz::composite::PaintHandler,
--+ public compiz::opengl::internal::DriverWorkaroundQuery,
-- public OpenglOptions
-- {
-- public:
--@@ -232,6 +251,7 @@
-- std::vector<GLTexture::BindPixmapProc> bindPixmap;
-- bool hasCompositing;
-- bool commonFrontbuffer;
--+ bool sharedMemoryTFP;
-- bool incorrectRefreshRate; // hack for NVIDIA specifying an incorrect
-- // refresh rate, causing us to miss vblanks
--
--@@ -266,6 +266,10 @@
-- std::vector<XToGLSync*>::size_type currentSyncNum;
-- XToGLSync *currentSync;
-- std::vector<XToGLSync*>::size_type warmupSyncs;
--+
--+ private:
--+
--+ bool unsafeForExternalBinds () const;
-- };
--
-- class PrivateGLWindow :
--Index: compiz/plugins/opengl/src/screen.cpp
--===================================================================
----- a/compiz.orig/plugins/opengl/src/screen.cpp 2014-03-03 15:29:29.898235681 +0100
--+++ b/compiz/plugins/opengl/src/screen.cpp 2014-03-03 15:29:29.894235669 +0100
--@@ -67,6 +67,7 @@
--
--
-- using namespace compiz::opengl;
--+namespace cglint = compiz::opengl::internal;
--
-- namespace GL {
-- #ifdef USE_GLES
--@@ -537,6 +538,18 @@
-- };
--
-- bool
--+PrivateGLScreen::unsafeForExternalBinds () const
--+{
--+ return sharedMemoryTFP;
--+}
--+
--+const cglint::DriverWorkaroundQuery &
--+GLScreen::fetchDriverWorkarounds ()
--+{
--+ return *priv;
--+}
--+
--+bool
-- GLScreen::glInitContext (XVisualInfo *visinfo)
-- {
-- #ifndef USE_GLES
--@@ -855,6 +868,7 @@
--
-- priv->commonFrontbuffer = true;
-- priv->incorrectRefreshRate = false;
--+ priv->sharedMemoryTFP = false;
-- if (glRenderer != NULL && strstr (glRenderer, "on llvmpipe"))
-- {
-- /*
--@@ -875,6 +889,18 @@
-- priv->incorrectRefreshRate = true;
-- }
--
--+ if (glVendor != NULL && strstr (glVendor, "Humper"))
--+ {
--+ /*
--+ * VirtualBox uses XShm/XCopyArea in order to implement
--+ * texture_from_pixmap. Because of this, they require
--+ * a second X connection to track damage events and
--+ * changes to the pixmap, and this is incompatible with
--+ * taking a server grab on when querying and binding
--+ * externally managed pixmaps */
--+ priv->sharedMemoryTFP = true;
--+ }
--+
-- if (strstr (glExtensions, "GL_ARB_texture_non_power_of_two"))
-- GL::textureNonPowerOfTwo = true;
-- GL::textureNonPowerOfTwoMipmap = GL::textureNonPowerOfTwo;
--Index: compiz/plugins/opengl/src/texture.cpp
--===================================================================
----- a/compiz.orig/plugins/opengl/src/texture.cpp 2014-03-03 15:29:29.898235681 +0100
--+++ b/compiz/plugins/opengl/src/texture.cpp 2014-03-03 15:31:45.974666737 +0100
--@@ -41,6 +41,7 @@
-- #include "glx-tfp-bind.h"
--
-- namespace cgl = compiz::opengl;
--+namespace cglint = compiz::opengl::internal;
--
-- #ifdef USE_GLES
-- std::map<Damage, EglTexture*> boundPixmapTex;
--@@ -646,6 +647,12 @@
-- int depth,
-- cgl::PixmapSource source)
-- {
--+ GLScreen *gs = GLScreen::get (screen);
--+ const cglint::DriverWorkaroundQuery &query (gs->fetchDriverWorkarounds ());
--+
--+ if (query.unsafeForExternalBinds () && source == cgl::ExternallyManaged)
--+ return GLTexture::List ();
--+
-- GLTexture::List rv (1);
-- TfpTexture *tex = NULL;
-- unsigned int target = 0;
-
-=== removed file 'debian/patches/ccsm_add_first_run_warning.patch'
---- a/debian/patches/ccsm_add_first_run_warning.patch 2012-06-19 11:22:48 +0000
-+++ b/debian/patches/ccsm_add_first_run_warning.patch 1970-01-01 00:00:00 +0000
-@@ -1,105 +0,0 @@
--Description: Add a first run dialog providing a user warning.
--Author: Andrew Starr-Bochicchio <a.starr.b@gmail.com>
--
--=== modified file 'ccm/Widgets.py'
--diff -Nur -x '*.orig' -x '*~' a/compizconfig/ccsm/ccm/Constants.py.in b/compizconfig/ccsm/ccm/Constants.py.in
----- a/a/compizconfig/ccsm/ccm/Constants.py.in 2012-02-01 13:30:19.131478000 -0500
--+++ b/b/compizconfig/ccsm/ccm/Constants.py.in 2012-02-13 18:26:19.699626332 -0500
--@@ -23,6 +23,7 @@
-- import pygtk
-- import gtk
-- import gtk.gdk
--+import os
--
-- # Current Screen
-- #
--@@ -66,6 +67,11 @@
-- DataDir = "@prefix@/share"
-- IconDir = DataDir+"/ccsm/icons"
-- PixmapDir = DataDir+"/ccsm/images"
--+ConfigHome = os.getenv("XDG_CONFIG_HOME")
--+if not ConfigHome:
--+ ConfigHome = os.path.join(os.getenv("HOME"), ".config")
--+ConfDir = os.path.join(ConfigHome, "compiz-1/compizconfig/")
--+ConfFile = os.path.join(ConfDir, "firstrun")
--
-- # Version
-- #
--diff -Nur -x '*.orig' -x '*~' a/compizconfig/ccsm/ccm/Widgets.py b/compizconfig/ccsm/ccm/Widgets.py
----- a/a/compizconfig/ccsm/ccm/Widgets.py 2012-02-02 22:43:52.623481000 -0500
--+++ b/b/compizconfig/ccsm/ccm/Widgets.py 2012-02-13 18:25:55.659409730 -0500
--@@ -1371,6 +1371,42 @@
-- self.set_transient_for (parent)
-- self.connect_after ("response", lambda *args: self.destroy ())
--
--+# First run dialog providing a user warning.
--+#
--+class FirstRun (gtk.MessageDialog):
--+ '''First run dialog providing a user warning.'''
--+
--+ def __init__(self, parent):
--+ gtk.MessageDialog.__init__ (self, parent,
--+ gtk.DIALOG_DESTROY_WITH_PARENT,
--+ gtk.MESSAGE_WARNING,
--+ gtk.BUTTONS_OK)
--+ self.set_position (gtk.WIN_POS_CENTER)
--+ title = _("CCSM is an advanced tool. Use with caution.")
--+ self.set_markup("<b>%s</b>" % title)
--+ message = _("This tool allows you to deeply configure Compiz's settings. Some options may be incompatible with each other. Unless used with care, it is possible to be left with an unusable desktop.")
--+ self.format_secondary_markup(message)
--+ check_button = gtk.CheckButton(label=_("Show this warning next time?"))
--+ check_button.set_active(True)
--+ self.vbox.pack_start(check_button, True, True, 2)
--+ check_button.show()
--+ check_button.connect("toggled", self.callback, "check button 1")
--+ self.set_transient_for(parent)
--+ self.set_modal(True)
--+ self.show_all()
--+ self.connect("response", lambda *args: self.destroy ())
--+
--+ def callback(self, widget, data=None):
--+ if widget.get_active() == True:
--+ if os.path.isfile(ConfFile):
--+ os.remove(ConfFile)
--+ else:
--+ if not os.path.exists(ConfDir):
--+ os.mkdir(ConfDir)
--+ if os.path.isdir(ConfDir):
--+ f = open(ConfFile, "w")
--+ f.close()
--+
-- # Plugin Button
-- #
-- class PluginButton (gtk.HBox):
--diff -Nur -x '*.orig' -x '*~' a/compizconfig/ccsm/ccsm b/compizconfig/ccsm/ccsm
----- a/a/compizconfig/ccsm/ccsm 2012-02-02 16:42:01.161305000 -0500
--+++ b/b/compizconfig/ccsm/ccsm 2012-02-13 18:25:55.663409766 -0500
--@@ -31,6 +31,7 @@
-- pygtk.require('2.0')
-- import gtk
-- import sys
--+import os
--
-- def try_register_dbus ():
-- '''Return instance of dbus control object on success, None on failure'''
--@@ -92,7 +93,7 @@
-- import compizconfig
-- import ccm
-- from ccm.Utils import GlobalUpdater
---from ccm.Constants import Version
--+from ccm.Constants import Version, ConfFile
--
-- plugin = None
-- category = None
--@@ -124,4 +125,11 @@
-- idle = ccm.IdleSettingsParser(context, mainWin)
-- mainWin.show_all()
--
--+# Check if we should show the first run warning dialog.
--+if os.path.isfile(ConfFile):
--+ pass
--+else:
--+ warning = ccm.FirstRun(mainWin)
--+ warning.show_all()
--+
-- gtk.main()
-
-=== removed file 'debian/patches/ccsm_disable_unity_checkbox.patch'
---- a/debian/patches/ccsm_disable_unity_checkbox.patch 2012-06-19 11:22:48 +0000
-+++ b/debian/patches/ccsm_disable_unity_checkbox.patch 1970-01-01 00:00:00 +0000
-@@ -1,20 +0,0 @@
--Description: If in a Unity session, don't allow the user to disable Unity from main view.
--Author: Andrew Starr-Bochicchio <a.starr.b@gmail.com>
--
--=== modified file 'ccm/Widgets.py'
--diff -Nur -x '*.orig' -x '*~' a/compizconfig/ccsm/ccm/Widgets.py b/compiconfig/ccsm/ccm/Widgets.py
----- a/a/compizconfig/ccsm/ccm/Widgets.py 2012-02-02 19:05:53.690931000 -0500
--+++ b/b/compizconfig/ccsm/ccm/Widgets.py 2012-02-13 18:42:47.612544975 -0500
--@@ -1401,7 +1401,11 @@
-- button.set_tooltip_text (plugin.LongDesc)
-- button.add (box)
--
--- if plugin.Name != 'core':
--+ blacklist_plugins = ['core']
--+ if os.getenv('DESKTOP_SESSION') == 'ubuntu':
--+ blacklist_plugins.append('unityshell')
--+
--+ if plugin.Name not in blacklist_plugins:
-- enable = gtk.CheckButton ()
-- enable.set_tooltip_text(_("Enable %s") % plugin.ShortDesc)
-- enable.set_active (plugin.Enabled)
-
-=== removed file 'debian/patches/ccsm_remove_redundant_sliders.patch'
---- a/debian/patches/ccsm_remove_redundant_sliders.patch 2014-04-11 15:37:49 +0000
-+++ b/debian/patches/ccsm_remove_redundant_sliders.patch 1970-01-01 00:00:00 +0000
-@@ -1,38 +0,0 @@
--=== modified file 'ccm/Settings.py'
----- a/a/compizconfig/ccsm/ccm/Settings.py 2014-04-11 11:28:28.731117694 -0400
--+++ b/b/compizconfig/ccsm/ccm/Settings.py 2014-04-11 11:29:59.443116911 -0400
--@@ -442,16 +442,10 @@
-- self.Adj = gtk.Adjustment(0, info[0], info[1], inc, inc*10)
-- self.Spin = gtk.SpinButton(self.Adj)
-- self.Spin.set_value(self.Get())
---
--- self.Scale = gtk.HScale(self.Adj)
---
--- self.Scale.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
--- self.Scale.connect("value-changed", self.Changed)
-- self.Spin.connect("value-changed", self.Changed)
--- self.Widget = self.Scale
--+ self.Widget = self.Spin
--
--- self.Box.pack_start(self.Scale, True, True)
--- self.Box.pack_start(self.Spin, False, False)
--+ self.Box.pack_end(self.Spin, False, False)
--
-- def _Read(self):
-- self.Adj.set_value(self.Get())
--@@ -465,7 +459,6 @@
-- self.Inc = 1
-- NumberSetting._Init(self)
-- self.Spin.set_digits(0)
--- self.Scale.set_digits(0)
--
-- class FloatSetting(NumberSetting):
--
--@@ -475,7 +468,6 @@
-- self.Inc = None
-- NumberSetting._Init(self)
-- self.Spin.set_digits(4)
--- self.Scale.set_digits(4)
--
--
-- class ColorSetting(StockSetting):
-
-=== removed file 'debian/patches/series'
---- a/debian/patches/series 2015-04-23 20:07:35 +0000
-+++ b/debian/patches/series 1970-01-01 00:00:00 +0000
-@@ -1,7 +0,0 @@
--ubuntu_super_p.patch
--ubuntu-config.patch
--ccsm_remove_redundant_sliders.patch
--ccsm_add_first_run_warning.patch
--ccsm_disable_unity_checkbox.patch
--unity_support_test.patch
--100_workaround_virtualbox_hang.patch
-
-=== removed file 'debian/patches/ubuntu-config.patch'
---- a/debian/patches/ubuntu-config.patch 2015-04-06 18:44:31 +0000
-+++ b/debian/patches/ubuntu-config.patch 1970-01-01 00:00:00 +0000
-@@ -1,886 +0,0 @@
--=== modified file 'metadata/core.xml.in'
--Index: scale-xy-offsets/metadata/core.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/metadata/core.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/metadata/core.xml.in 2014-02-17 21:25:57.408121419 +0100
--@@ -139,7 +139,7 @@
-- <option name="focus_prevention_match" type="match">
-- <_short>Focus Prevention Windows</_short>
-- <_long>Focus prevention windows</_long>
--- <default>any</default>
--+ <default>!(class=Polkit-gnome-authentication-agent-1)</default>
-- </option>
-- </group>
-- <group>
--@@ -174,7 +174,7 @@
-- <option name="minimize_window_key" type="key">
-- <_short>Minimize Window</_short>
-- <_long>Minimize active window</_long>
--- <default>&lt;Alt&gt;F9</default>
--+ <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
-- </option>
-- <option name="minimize_window_button" type="button">
-- <_short>Minimize Window</_short>
--@@ -183,16 +183,16 @@
-- <option name="maximize_window_key" type="key">
-- <_short>Maximize Window</_short>
-- <_long>Maximize active window</_long>
--- <default>&lt;Alt&gt;F10</default>
--+ <default>&lt;Control&gt;&lt;Super&gt;Up</default>
-- </option>
-- <option name="unmaximize_window_key" type="key">
-- <_short>Unmaximize Window</_short>
-- <_long>Unmaximize active window</_long>
--- <default>&lt;Alt&gt;F5</default>
-- </option>
-- <option name="unmaximize_or_minimize_window_key" type="key">
-- <_short>Unmaximize or Minimize Window</_short>
-- <_long>Unmaximize or minimize active window</_long>
--+ <default>&lt;Control&gt;&lt;Super&gt;Down</default>
-- </option>
-- <option name="maximize_window_horizontally_key" type="key">
-- <_short>Maximize Window Horizontally</_short>
--@@ -215,7 +215,6 @@
-- <option name="show_desktop_key" type="key">
-- <_short>Show Desktop</_short>
-- <_long>Hide all windows and focus desktop</_long>
--- <default>&lt;Control&gt;&lt;Alt&gt;d</default>
-- </option>
-- <option name="show_desktop_edge" type="edge">
-- <_short>Show Desktop</_short>
--@@ -225,6 +224,7 @@
-- <option name="toggle_window_maximized_key" type="key">
-- <_short>Toggle Window Maximized</_short>
-- <_long>Toggle active window maximized</_long>
--+ <default>&lt;Control&gt;&lt;Alt&gt;KP_5</default>
-- </option>
-- <option name="toggle_window_maximized_button" type="button">
-- <_short>Toggle Window Maximized</_short>
--@@ -249,7 +249,7 @@
-- <option name="hsize" type="int">
-- <_short>Horizontal Virtual Size</_short>
-- <_long>Screen size multiplier for horizontal virtual size</_long>
--- <default>4</default>
--+ <default>1</default>
-- <min>1</min>
-- <max>32</max>
-- </option>
--Index: scale-xy-offsets/plugins/animation/animation.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/animation/animation.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/animation/animation.xml.in 2014-02-17 21:25:57.408121419 +0100
--@@ -36,7 +36,7 @@
-- <extensible/>
-- <sort start="2"/>
-- <default>
--- <value>animation:Zoom</value>
--+ <value>animation:Glide 2</value>
-- <value>animation:Fade</value>
-- <value>animation:Fade</value>
-- </default>
--@@ -48,9 +48,9 @@
-- <min>50</min>
-- <max>4000</max>
-- <default>
--- <value>200</value>
--- <value>150</value>
--- <value>150</value>
--+ <value>120</value>
--+ <value>80</value>
--+ <value>80</value>
-- </default>
-- </option>
-- <option name="open_matches" type="list">
--@@ -58,8 +58,8 @@
-- <_long>The windows that will be animated.</_long>
-- <type>match</type>
-- <default>
--- <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
--- <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
--+ <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver)</value>
--+ <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
-- <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
-- </default>
-- </option>
--@@ -102,7 +102,7 @@
-- <extensible/>
-- <sort start="2"/>
-- <default>
--- <value>animation:Zoom</value>
--+ <value>animation:Glide 2</value>
-- <value>animation:Fade</value>
-- <value>animation:Fade</value>
-- </default>
--@@ -114,9 +114,9 @@
-- <min>50</min>
-- <max>4000</max>
-- <default>
--- <value>200</value>
--- <value>150</value>
--- <value>150</value>
--+ <value>120</value>
--+ <value>80</value>
--+ <value>50</value>
-- </default>
-- </option>
-- <option name="close_matches" type="list">
--@@ -124,8 +124,8 @@
-- <_long>The windows that will be animated.</_long>
-- <type>match</type>
-- <default>
--- <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
--- <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
--+ <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver) &amp; !(name=gnome-screenshot)</value>
--+ <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
-- <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
-- </default>
-- </option>
--@@ -168,7 +168,7 @@
-- <extensible/>
-- <sort start="2"/>
-- <default>
--- <value>animation:Magic Lamp</value>
--+ <value>animation:Zoom</value>
-- </default>
-- </option>
-- <option name="minimize_durations" type="list">
--@@ -178,7 +178,7 @@
-- <min>50</min>
-- <max>4000</max>
-- <default>
--- <value>300</value>
--+ <value>220</value>
-- </default>
-- </option>
-- <option name="minimize_matches" type="list">
--@@ -341,7 +341,7 @@
-- <extensible/>
-- <sort start="1"/>
-- <default>
--- <value>animation:None</value>
--+ <value>animation:Fade</value>
-- </default>
-- </option>
-- <option name="focus_durations" type="list">
--@@ -351,7 +351,7 @@
-- <min>50</min>
-- <max>4000</max>
-- <default>
--- <value>300</value>
--+ <value>150</value>
-- </default>
-- </option>
-- <option name="focus_matches" type="list">
--@@ -385,7 +385,7 @@
-- <option name="time_step" type="int">
-- <_short>Animation Time Step</_short>
-- <_long>The amount of time in milliseconds between each render of the animation. The higher the number, the jerkier the movements become.</_long>
--- <default>10</default>
--+ <default>16</default>
-- <min>1</min>
-- <max>400</max>
-- </option>
--@@ -473,7 +473,7 @@
-- <option name="glide2_away_position" type="float">
-- <_short>Away Position</_short>
-- <_long>Closeness of window to camera at the end of the animation (1.0: Close to camera, -2.0: Away from camera).</_long>
--- <default>-0.4</default>
--+ <default>-0.1</default>
-- <min>-2</min>
-- <max>1</max>
-- <precision>0.05</precision>
--@@ -481,7 +481,7 @@
-- <option name="glide2_away_angle" type="float">
-- <_short>Away Angle</_short>
-- <_long>Angle of window at the end of the animation.</_long>
--- <default>-45</default>
--+ <default>0</default>
-- <min>-540</min>
-- <max>540</max>
-- <precision>5</precision>
--@@ -686,7 +686,7 @@
-- <option name="zoom_springiness" type="float">
-- <_short>Springiness</_short>
-- <_long>How spring-like the Zoom animation should be.</_long>
--- <default>0.0</default>
--+ <default>0.08</default>
-- <min>0</min>
-- <max>1</max>
-- <precision>0.01</precision>
--Index: scale-xy-offsets/plugins/decor/decor.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/decor/decor.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/decor/decor.xml.in 2014-02-17 21:25:57.412121402 +0100
--@@ -31,7 +31,7 @@
-- <option name="active_shadow_opacity" type="float">
-- <_short>Shadow Opacity</_short>
-- <_long>Drop shadow opacity</_long>
--- <default>0.5</default>
--+ <default>0.8</default>
-- <min>0.01</min>
-- <max>6.0</max>
-- <precision>0.01</precision>
--@@ -66,7 +66,7 @@
-- <option name="inactive_shadow_radius" type="float">
-- <_short>Shadow Radius</_short>
-- <_long>Drop shadow radius</_long>
--- <default>8.0</default>
--+ <default>5.0</default>
-- <min>0.1</min>
-- <max>13.0</max>
-- <precision>0.1</precision>
--@@ -74,7 +74,7 @@
-- <option name="inactive_shadow_opacity" type="float">
-- <_short>Shadow Opacity</_short>
-- <_long>Drop shadow opacity</_long>
--- <default>0.5</default>
--+ <default>0.4</default>
-- <min>0.01</min>
-- <max>6.0</max>
-- <precision>0.01</precision>
--@@ -101,7 +101,7 @@
-- <option name="command" type="string">
-- <_short>Command</_short>
-- <_long>Decorator command line that is executed if no decorator is already running.</_long>
--- <default>exec \"${COMPIZ_BIN_PATH}compiz-decorator\"</default>
--+ <default>/usr/bin/gtk-window-decorator</default>
-- </option>
-- <option name="mipmap" type="bool">
-- <_short>Mipmap</_short>
--Index: scale-xy-offsets/plugins/fade/fade.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/fade/fade.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/fade/fade.xml.in 2014-02-17 21:25:57.412121402 +0100
--@@ -10,6 +10,7 @@
-- </requirement>
-- <relation type="after">
-- <plugin>decor</plugin>
--+ <plugin>staticswitcher</plugin>
-- </relation>
-- <relation type="before">
-- <plugin>cube</plugin>
--@@ -50,7 +51,7 @@
-- <option name="window_match" type="match">
-- <_short>Fade windows</_short>
-- <_long>Windows that should be fading</_long>
--- <default>any</default>
--+ <default>any &amp; !(title=notify-osd)</default>
-- </option>
-- <option name="visual_bell" type="bell">
-- <_short>Visual Bell</_short>
--Index: scale-xy-offsets/plugins/gnomecompat/gnomecompat.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/gnomecompat/gnomecompat.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/gnomecompat/gnomecompat.xml.in 2014-02-17 21:25:57.412121402 +0100
--@@ -53,6 +53,7 @@
-- <option name="run_command_terminal_key" type="key">
-- <_short>Open a terminal</_short>
-- <_long>Open a terminal</_long>
--+ <default>&lt;Control&gt;&lt;Alt&gt;T</default>
-- </option>
-- </group>
-- </options>
--Index: scale-xy-offsets/plugins/resize/resize.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/resize/resize.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/resize/resize.xml.in 2014-02-17 21:25:57.412121402 +0100
--@@ -56,15 +56,15 @@
-- <option name="maximize_vertically" type="bool">
-- <short>Maximize Vertically if screen edge hit</short>
-- <long>Maximizes the window vertically if the top or bottom screen edge is hit while resizing</long>
--- <default>false</default>
--+ <default>true</default>
-- </option>
-- <option name="border_color" type="color">
-- <_short>Border Color</_short>
-- <_long>Border color used for outline and rectangle resize modes</_long>
-- <default>
--- <red>0x2f2f</red>
--- <green>0x2f2f</green>
--- <blue>0x4f4f</blue>
--+ <red>0xfbfb</red>
--+ <green>0x8b8b</green>
--+ <blue>0x0</blue>
-- <alpha>0x9f9f</alpha>
-- </default>
-- </option>
--@@ -72,10 +72,10 @@
-- <_short>Fill Color</_short>
-- <_long>Fill color used for rectangle resize mode</_long>
-- <default>
--- <red>0x2f2f</red>
--- <green>0x2f2f</green>
--- <blue>0x4f4f</blue>
--- <alpha>0x4f4f</alpha>
--+ <red>0xfbfb</red>
--+ <green>0x8b8b</green>
--+ <blue>0x0</blue>
--+ <alpha>0x1919</alpha>
-- </default>
-- </option>
-- <subgroup>
--Index: scale-xy-offsets/plugins/scale/scale.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/scale/scale.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/scale/scale.xml.in 2014-02-17 21:31:47.058611881 +0100
--@@ -19,7 +19,7 @@
-- <option name="spacing" type="int">
-- <_short>Spacing</_short>
-- <_long>Space between windows</_long>
--- <default>10</default>
--+ <default>20</default>
-- <min>0</min>
-- <max>250</max>
-- </option>
--@@ -36,7 +36,7 @@
-- <option name="speed" type="float">
-- <_short>Speed</_short>
-- <_long>Scale speed</_long>
--- <default>1.5</default>
--+ <default>5.0</default>
-- <min>0.1</min>
-- <max>50</max>
-- <precision>0.1</precision>
--@@ -44,7 +44,7 @@
-- <option name="timestep" type="float">
-- <_short>Timestep</_short>
-- <_long>Scale timestep</_long>
--- <default>1.2</default>
--+ <default>0.1</default>
-- <min>0.1</min>
-- <max>50</max>
-- <precision>0.1</precision>
--@@ -57,7 +57,7 @@
-- <option name="opacity" type="int">
-- <_short>Opacity</_short>
-- <_long>Amount of opacity in percent</_long>
--- <default>75</default>
--+ <default>100</default>
-- <min>0</min>
-- <max>100</max>
-- </option>
--@@ -66,7 +66,7 @@
-- <_long>Overlay an icon on windows once they are scaled</_long>
-- <min>0</min>
-- <max>2</max>
--- <default>1</default>
--+ <default>0</default>
-- <desc>
-- <value>0</value>
-- <_name>None</_name>
--@@ -107,7 +107,7 @@
-- <_long>Selects where windows are scaled if multiple output devices are used.</_long>
-- <min>0</min>
-- <max>1</max>
--- <default>0</default>
--+ <default>1</default>
-- <desc>
-- <value>0</value>
-- <_name>On current output device</_name>
--@@ -123,7 +123,7 @@
-- <option name="key_bindings_toggle" type="bool">
-- <_short>Key Bindings Toggle Scale Mode</_short>
-- <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
--- <default>false</default>
--+ <default>true</default>
-- </option>
-- <option name="button_bindings_toggle" type="bool">
-- <_short>Button Bindings Toggle Scale Mode</_short>
--@@ -133,15 +133,12 @@
-- <option name="initiate_edge" type="edge">
-- <_short>Initiate Window Picker</_short>
-- <_long>Layout and start transforming windows</_long>
--- <default>
--- <edge name="TopRight"/>
--- </default>
-- <allowed edgednd="true"/>
-- </option>
-- <option name="initiate_key" type="key">
-- <_short>Initiate Window Picker</_short>
-- <_long>Layout and start transforming windows</_long>
--- <default>&lt;Shift&gt;&lt;Alt&gt;Up</default>
--+ <default>&lt;Super&gt;w</default>
-- </option>
-- <option name="initiate_button" type="button">
-- <_short>Initiate Window Picker</_short>
--@@ -161,6 +158,7 @@
-- <option name="initiate_all_key" type="key">
-- <_short>Initiate Window Picker For All Windows</_short>
-- <_long>Layout and start transforming all windows</_long>
--+ <default>&lt;Super&gt;&lt;Shift&gt;w</default>
-- </option>
-- <option name="initiate_group_edge" type="edge">
-- <_short>Initiate Window Picker For Window Group</_short>
--Index: compiz/plugins/staticswitcher/staticswitcher.xml.in
--===================================================================
----- a/compiz.orig/plugins/staticswitcher/staticswitcher.xml.in 2014-03-04 19:11:33.195668835 +0100
--+++ b/compiz/plugins/staticswitcher/staticswitcher.xml.in 2014-03-04 19:11:33.187668855 +0100
--@@ -11,7 +11,6 @@
-- <relation type="after">
-- <plugin>composite</plugin>
-- <plugin>opengl</plugin>
--- <plugin>fade</plugin>
-- <plugin>compiztoolbox</plugin>
-- <plugin>decor</plugin>
-- </relation>
--@@ -140,12 +139,12 @@
-- <option name="auto_change_vp" type="bool">
-- <_short>Auto Change Viewport</_short>
-- <_long>Change to the viewport of the selected window while switching</_long>
--- <default>false</default>
--+ <default>true</default>
-- </option>
-- <option name="popup_delay" type="float">
-- <_short>Popup Window Delay</_short>
-- <_long>Time (in s) the popup window should be delayed before appearing</_long>
--- <default>0.0</default>
--+ <default>0.2</default>
-- <min>0.0</min>
-- <max>2.0</max>
-- <precision>0.05</precision>
--@@ -153,7 +152,7 @@
-- <option name="mouse_select" type="bool">
-- <_short>Allow Mouse Selection</_short>
-- <_long>Allow selection of windows from the switcher window with the mouse</_long>
--- <default>false</default>
--+ <default>true</default>
-- </option>
-- </group>
-- <group>
--@@ -161,14 +160,14 @@
-- <option name="saturation" type="int">
-- <_short>Saturation</_short>
-- <_long>Amount of saturation in percent</_long>
--- <default>50</default>
--+ <default>100</default>
-- <min>0</min>
-- <max>100</max>
-- </option>
-- <option name="brightness" type="int">
-- <_short>Brightness</_short>
-- <_long>Amount of brightness in percent</_long>
--- <default>50</default>
--+ <default>100</default>
-- <min>0</min>
-- <max>100</max>
-- </option>
--@@ -192,7 +191,7 @@
-- <option name="mipmap" type="bool">
-- <_short>Mipmap</_short>
-- <_long>Generate mipmaps when possible for higher quality scaling</_long>
--- <default>true</default>
--+ <default>false</default>
-- </option>
-- <option name="row_align" type="int">
-- <_short>Row Alignment</_short>
--@@ -221,7 +220,7 @@
-- <option name="bring_to_front" type="bool">
-- <_short>Bring To Front</_short>
-- <_long>Bring selected window to front</_long>
--- <default>true</default>
--+ <default>false</default>
-- </option>
-- <_short>Selected Window Highlight</_short>
-- <option name="highlight_mode" type="int">
--@@ -229,7 +228,7 @@
-- <_long>Mode for highlighting the currently selected window</_long>
-- <min>0</min>
-- <max>2</max>
--- <default>1</default>
--+ <default>0</default>
-- <desc>
-- <value>0</value>
-- <_name>None</_name>
--Index: scale-xy-offsets/plugins/vpswitch/vpswitch.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/vpswitch/vpswitch.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/vpswitch/vpswitch.xml.in 2014-02-17 21:25:57.412121402 +0100
--@@ -95,13 +95,11 @@
-- <option name="next_button" type="button">
-- <_short>Move Next</_short>
-- <_long>Move to the next viewport</_long>
--- <default>Button5</default>
-- <internal/>
-- </option>
-- <option name="prev_button" type="button">
-- <_short>Move Prev</_short>
-- <_long>Move to the previous viewport</_long>
--- <default>Button4</default>
-- <internal/>
-- </option>
-- <option name="initiate_button" type="button">
--Index: scale-xy-offsets/plugins/wall/wall.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/wall/wall.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/wall/wall.xml.in 2014-02-17 21:25:57.416121383 +0100
--@@ -30,12 +30,12 @@
-- <option name="miniscreen" type="bool">
-- <_short>Show Live Viewport Previews</_short>
-- <_long>Show live viewport previews in switcher window</_long>
--- <default>false</default>
--+ <default>true</default>
-- </option>
-- <option name="preview_timeout" type="float">
-- <_short>Switch Target Preview Visibility Time</_short>
-- <_long>Duration (in s) the switch target preview should remain visible after switching ends.</_long>
--- <default>0.4</default>
--+ <default>0.2</default>
-- <min>0.0</min>
-- <max>2.0</max>
-- <precision>0.05</precision>
--@@ -43,7 +43,7 @@
-- <option name="preview_scale" type="int">
-- <_short>Preview Scale</_short>
-- <_long>Size of the preview in %</_long>
--- <default>100</default>
--+ <default>130</default>
-- <min>0</min>
-- <max>400</max>
-- </option>
--@@ -57,7 +57,7 @@
-- <option name="border_width" type="int">
-- <_short>Border Width</_short>
-- <_long>Width of the border between the previews</_long>
--- <default>10</default>
--+ <default>7</default>
-- <min>0</min>
-- <max>30</max>
-- </option>
--@@ -65,10 +65,10 @@
-- <_short>Outline Color</_short>
-- <_long>Outline color of the switcher window.</_long>
-- <default>
--- <red>0x3333</red>
--- <green>0x3333</green>
--- <blue>0x3333</blue>
--- <alpha>0xd998</alpha>
--+ <red>0xffff</red>
--+ <green>0xffff</green>
--+ <blue>0xffff</blue>
--+ <alpha>0x3232</alpha>
-- </default>
-- </option>
-- <subgroup>
--@@ -78,30 +78,30 @@
-- <_short>Base Color</_short>
-- <_long>First color for the background gradient of the switcher window.</_long>
-- <default>
--- <red>0xcccc</red>
--- <green>0xcccc</green>
--- <blue>0xe665</blue>
--- <alpha>0xd998</alpha>
--+ <red>0x0000</red>
--+ <green>0x0000</green>
--+ <blue>0x0000</blue>
--+ <alpha>0x6464</alpha>
-- </default>
-- </option>
-- <option name="background_gradient_highlight_color" type="color">
-- <_short>Highlight Color</_short>
-- <_long>Second color for the background gradient of the switcher window.</_long>
-- <default>
--- <red>0xf332</red>
--- <green>0xf332</green>
--- <blue>0xffff</blue>
--- <alpha>0xd998</alpha>
--+ <red>0x0000</red>
--+ <green>0x0000</green>
--+ <blue>0x0000</blue>
--+ <alpha>0x6464</alpha>
-- </default>
-- </option>
-- <option name="background_gradient_shadow_color" type="color">
-- <_short>Shadow Color</_short>
-- <_long>Third color for the background gradient of the switcher window.</_long>
-- <default>
--- <red>0xf332</red>
--- <green>0xf332</green>
--- <blue>0xffff</blue>
--- <alpha>0xd998</alpha>
--+ <red>0x0000</red>
--+ <green>0x0000</green>
--+ <blue>0x0000</blue>
--+ <alpha>0x6464</alpha>
-- </default>
-- </option>
-- </subgroup>
--@@ -112,20 +112,20 @@
-- <_short>Base Color</_short>
-- <_long>First color for the thumb gradient of the switcher window.</_long>
-- <default>
--- <red>0x3333</red>
--- <green>0x3333</green>
--- <blue>0x3333</blue>
--- <alpha>0x5999</alpha>
--+ <red>0x5555</red>
--+ <green>0x5555</green>
--+ <blue>0x5555</blue>
--+ <alpha>0x3232</alpha>
-- </default>
-- </option>
-- <option name="thumb_gradient_highlight_color" type="color">
-- <_short>Highlight Color</_short>
-- <_long>Second color for the thumb gradient of the switcher window.</_long>
-- <default>
--- <red>0x3fff</red>
--- <green>0x3fff</green>
--- <blue>0x3fff</blue>
--- <alpha>0x3fff</alpha>
--+ <red>0x5555</red>
--+ <green>0x5555</green>
--+ <blue>0x5555</blue>
--+ <alpha>0x3232</alpha>
-- </default>
-- </option>
-- </subgroup>
--@@ -139,7 +139,7 @@
-- <red>0xffff</red>
-- <green>0xffff</green>
-- <blue>0xffff</blue>
--- <alpha>0xf332</alpha>
--+ <alpha>0xffff</alpha>
-- </default>
-- </option>
-- <option name="thumb_highlight_gradient_shadow_color" type="color">
--@@ -149,7 +149,7 @@
-- <red>0xdfff</red>
-- <green>0xdfff</green>
-- <blue>0xdfff</blue>
--- <alpha>0xa665</alpha>
--+ <alpha>0xffff</alpha>
-- </default>
-- </option>
-- </subgroup>
--@@ -201,7 +201,7 @@
-- <option name="auto_switch_vp_and_window" type="bool">
-- <_short>Auto Switch Vp And Window</_short>
-- <_long>Auto switch the viewport and move window when Alt-Tab to window that is more than half contained in another viewport</_long>
--- <default>true</default>
--+ <default>false</default>
-- </option>
-- </group>
-- <group>
--@@ -356,7 +356,7 @@
-- <option name="edgeflip_move" type="bool">
-- <_short>Edge Flip Move</_short>
-- <_long>Flip viewport when moving a window to a screen edge</_long>
--- <default>true</default>
--+ <default>false</default>
-- </option>
-- <option name="edgeflip_dnd" type="bool">
-- <_short>Edge Flip DnD</_short>
--Index: scale-xy-offsets/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp
--===================================================================
----- a/scale-xy-offsets.orig/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2014-02-17 21:25:57.416121383 +0100
--@@ -46,7 +46,7 @@
--
-- namespace
-- {
---unsigned int DEFAULT_VIEWPORT_WIDTH = 4;
--+unsigned int DEFAULT_VIEWPORT_WIDTH = 1;
-- unsigned int DEFAULT_VIEWPORT_HEIGHT = 1;
--
-- bool Advance (Display *d, bool r)
--Index: scale-xy-offsets/plugins/grid/grid.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/grid/grid.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/grid/grid.xml.in 2014-02-17 21:25:57.416121383 +0100
--@@ -68,12 +68,12 @@
-- <option name="put_maximize_key" type="key">
-- <_short>Maximize Key</_short>
-- <_long>Maximize window.</_long>
--- <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
--+ <default>&lt;Control&gt;&lt;Super&gt;Up</default>
-- </option>
-- <option name="put_restore_key" type="key">
-- <_short>Restore</_short>
-- <_long>Restore window to it's original size. Note: Use the same shortcut you are using to unmaximize a window to be able to restore grid-maximized windows.</_long>
--- <default>&lt;Alt&gt;F5</default>
--+ <default>&lt;Control&gt;&lt;Super&gt;Down</default>
-- </option>
-- <option name="left_maximize" type="key">
-- <_short>Left Maximize</_short>
--Index: scale-xy-offsets/plugins/ezoom/ezoom.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/ezoom/ezoom.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/ezoom/ezoom.xml.in 2014-02-17 21:25:57.416121383 +0100
--@@ -30,7 +30,7 @@
-- <option type="button" name="zoom_in_button">
-- <_short>Zoom In Button</_short>
-- <_long>Mouse button shortcut to invoke zooming in.</_long>
--- <default>&lt;Super&gt;Button4</default>
--+ <default></default>
-- </option>
-- <option type="key" name="zoom_in_key">
-- <_short>Zoom In Key</_short>
--@@ -39,7 +39,7 @@
-- <option type="button" name="zoom_out_button">
-- <_short>Zoom Out Button</_short>
-- <_long>Mouse button shortcut to invoke zooming out.</_long>
--- <default>&lt;Super&gt;Button5</default>
--+ <default></default>
-- </option>
-- <option type="key" name="zoom_out_key">
-- <_short>Zoom Out Key</_short>
--@@ -48,7 +48,7 @@
-- <option type="button" name="zoom_box_button">
-- <_short>Invoke Zoom Box Button</_short>
-- <_long>Define a rectangle area and zoom into it.</_long>
--- <default>&lt;Super&gt;Button2</default>
--+ <default></default>
-- </option>
-- <option name="zoom_box_outline_color" type="color">
-- <_short>Zoom Box Outline Color</_short>
--@@ -162,7 +162,7 @@
-- <option type="key" name="fit_to_window_key">
-- <_short>Fit zoomed area to window</_short>
-- <_long>Zooms in/out so the focused window is zoomed to the maximum while still being fully visible.</_long>
--- <default>&lt;Super&gt;r</default>
--+ <default></default>
-- </option>
-- </subgroup>
-- </group>
--Index: scale-xy-offsets/plugins/expo/expo.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/expo/expo.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/expo/expo.xml.in 2014-02-17 21:25:57.416121383 +0100
--@@ -17,6 +17,7 @@
-- <plugin>wobbly</plugin>
-- <plugin>animation</plugin>
-- <plugin>wallpaper</plugin>
--+ <plugin>imgpng</plugin>
-- </relation>
-- </deps>
-- <options>
--@@ -25,7 +26,7 @@
-- <option name="expo_key" type="key">
-- <_short>Expo Key</_short>
-- <_long>Initiate or terminate Expo mode with this keyboard shortcut.</_long>
--- <default>&lt;Super&gt;e</default>
--+ <default>&lt;Super&gt;s</default>
-- </option>
-- <option name="expo_button" type="button">
-- <_short>Expo Button</_short>
--@@ -36,7 +37,6 @@
-- <_short>Expo Corner/Edge</_short>
-- <_long>Initiate or terminate Expo mode by moving the pointer to this corner or edge of your screen(s).</_long>
-- <default>
--- <edge name="TopLeft"/>
-- </default>
-- </option>
-- <option name="double_click_time" type="int">
--@@ -80,7 +80,7 @@
-- <option name="zoom_time" type="float">
-- <_short>Animation Duration</_short>
-- <_long>Duration of the selected animation (in seconds).</_long>
--- <default>0.5</default>
--+ <default>0.3</default>
-- <min>0.1</min>
-- <max>5.0</max>
-- <precision>0.1</precision>
--@@ -142,12 +142,12 @@
-- <option name="x_offset" type="int">
-- <_short>X Offset</_short>
-- <_long>Horizontal offset (in pixels).</_long>
--- <default>0</default>
--+ <default>64</default>
-- </option>
-- <option name="y_offset" type="int">
-- <_short>Y Offset</_short>
-- <_long>Vertical offset (in pixels).</_long>
--- <default>0</default>
--+ <default>24</default>
-- </option>
-- <option name="distance" type="float">
-- <_short>Camera Distance</_short>
--@@ -160,7 +160,7 @@
-- <option name="vp_distance" type="float">
-- <_short>Viewport Distance</_short>
-- <_long>The distance between viewports in Expo mode.</_long>
--- <default>0.10</default>
--+ <default>0.2</default>
-- <min>0.0</min>
-- <max>1.0</max>
-- <precision>0.01</precision>
--@@ -188,7 +188,7 @@
-- <_long>How the Expo wall should be displayed, if multiple output devices are used.</_long>
-- <min>0</min>
-- <max>1</max>
--- <default>0</default>
--+ <default>1</default>
-- <desc>
-- <value>0</value>
-- <_name>One big wall</_name>
--@@ -203,7 +203,7 @@
-- <option name="vp_brightness" type="float">
-- <_short>Brightness</_short>
-- <_long>The brightness of unfocused viewports (in percent).</_long>
--- <default>75.0</default>
--+ <default>40.0</default>
-- <min>0.0</min>
-- <max>100.0</max>
-- <precision>0.1</precision>
--@@ -223,7 +223,7 @@
-- <red>0xfbfb</red>
-- <green>0x8b8b</green>
-- <blue>0x0</blue>
--- <alpha>0x0</alpha>
--+ <alpha>0xffff</alpha>
-- </default>
-- </option>
-- </subgroup>
--@@ -232,7 +232,7 @@
-- <option name="reflection" type="bool">
-- <_short>Reflection</_short>
-- <_long>Render a realtime reflection of the viewports on the ground.</_long>
--- <default>true</default>
--+ <default>false</default>
-- </option>
-- <option name="ground_color1" type="color">
-- <_short>Ground Color (near)</_short>
--Index: scale-xy-offsets/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml
--===================================================================
----- a/scale-xy-offsets.orig/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2014-02-17 21:25:57.416121383 +0100
--@@ -10,6 +10,9 @@
-- <key type="s" name="command-screenshot">
-- <default>"gnome-screenshot"</default>
-- </key>
--+ <key type="as" name="run-command-21">
--+ <default>["&lt;Control&gt;&lt;Alt&gt;Delete"]</default>
--+ </key>
-- <key type="as" name="run-command-12">
-- <default>["Disabled"]</default>
-- </key>
--@@ -46,6 +49,9 @@
-- <key type="as" name="run-command-1">
-- <default>["Disabled"]</default>
-- </key>
--+ <key type="s" name="command-21">
--+ <default>"/usr/bin/gnome-system-monitor -p"</default>
--+ </key>
-- <key type="s" name="command-12">
-- <default>""</default>
-- </key>
--Index: scale-xy-offsets/plugins/commands/commands.xml.in
--===================================================================
----- a/scale-xy-offsets.orig/plugins/commands/commands.xml.in 2014-02-17 21:25:57.420121366 +0100
--+++ b/scale-xy-offsets/plugins/commands/commands.xml.in 2014-02-17 21:25:57.416121383 +0100
--@@ -117,7 +117,7 @@
-- <option name="command20" type="string">
-- <_short>Command line 20</_short>
-- <_long>Command line to be executed in shell when run_command20 is invoked</_long>
--- <default></default>
--+ <default>/usr/bin/gnome-system-monitor -p</default>
-- </option>
-- </group>
-- <group>
--@@ -205,6 +205,7 @@
-- <option name="run_command20_key" type="key">
-- <_short>Run command 20</_short>
-- <_long>A keybinding that when invoked, will run the shell command identified by command20</_long>
--+ <default>&lt;Control&gt;&lt;Alt&gt;Delete</default>
-- </option>
-- </group>
-- <group>
-
-=== removed file 'debian/patches/ubuntu_super_p.patch'
---- a/debian/patches/ubuntu_super_p.patch 2013-11-22 15:11:24 +0000
-+++ b/debian/patches/ubuntu_super_p.patch 1970-01-01 00:00:00 +0000
-@@ -1,30 +0,0 @@
----- a/a/src/screen.cpp
--+++ b/b/src/screen.cpp
--@@ -3253,12 +3253,22 @@
-- * This is so that we can detect taps on individual modifier
-- * keys, and know to cancel the tap if <modifier>+k is pressed.
-- */
--- if (!(currentState & CompAction::StateIgnoreTap))
--+ int minCode, maxCode;
--+ XDisplayKeycodes (screen->dpy(), &minCode, &maxCode);
--+
--+ if ((currentState & CompAction::StateIgnoreTap))
--+ {
--+ KeySym sym_p = XStringToKeysym("p");
--+ KeyCode code_p = XKeysymToKeycode(screen->dpy(), sym_p);
--+
--+ for (k = minCode; k <= maxCode; k++)
--+ if (k != code_p)
--+ grabUngrabOneKey (modifiers | ignore, k, grab);
--+ }
--+ else
-- {
--- int minCode, maxCode;
--- XDisplayKeycodes (screen->dpy(), &minCode, &maxCode);
--- for (k = minCode; k <= maxCode; k++)
--- grabUngrabOneKey (modifiers | modifierForKeycode | ignore, k, grab);
--+ for (k = minCode; k <= maxCode; k++)
--+ grabUngrabOneKey (modifiers | modifierForKeycode | ignore, k, grab);
-- }
-- }
--
-
-=== removed file 'debian/patches/unity_support_test.patch'
---- a/debian/patches/unity_support_test.patch 2012-10-09 13:05:32 +0000
-+++ b/debian/patches/unity_support_test.patch 1970-01-01 00:00:00 +0000
-@@ -1,90 +0,0 @@
--# Description: force llvmpipe in the unity profile if we are in the grey zone,
--# meaning: the card and drivers have opengl support, however,
--# it doesn't met unity requirements (opengl < 1.4, no vertex
--# shaders supportā€¦).
--# Forwarded: not-needed
--# Bug: https://launchpad.net/bugs/1039155
--# Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
--=== modified file 'src/plugin.cpp'
----- a/old/src/plugin.cpp 2012-07-30 10:15:41 +0000
--+++ b/new/src/plugin.cpp 2012-10-09 10:52:12 +0000
--@@ -116,6 +116,60 @@
-- }
--
-- static bool
--+setOpenGLPluginEnvironment ()
--+{
--+ /*
--+ * Check if the hardware is adequate for Unity and if not, use LLVMpipe.
--+ * Unfortunately the design of Mesa requires that this be done before
--+ * libGL is loaded, which means before the opengl plugin is loaded.
--+ */
--+ bool toggledLLVM = false;
--+
--+ if (!getenv ("LIBGL_ALWAYS_SOFTWARE"))
--+ {
--+ const char *profile = getenv ("COMPIZ_CONFIG_PROFILE");
--+ if (profile && !strcmp (profile, "ubuntu"))
--+ {
--+ int result = system ("/usr/lib/nux/unity_support_test");
--+ int status = WEXITSTATUS (result);
--+ compLogMessage ("core", CompLogLevelInfo,
--+ "Unity is %s",
--+ status == 0 ? "fully supported by your hardware." :
--+ status == 127 ? "undetectable" :
--+ "not supported by your hardware. "
--+ "Enabling software rendering instead (slow).");
--+ if (status > 0 && status < 127)
--+ {
--+ setenv ("LIBGL_ALWAYS_SOFTWARE", "1", 1);
--+ toggledLLVM = true;
--+ }
--+ }
--+ }
--+
--+ return toggledLLVM;
--+}
--+
--+static void
--+unsetUnityshellPluginEnvironment ()
--+{
--+ unsetenv ("LIBGL_ALWAYS_SOFTWARE");
--+}
--+
--+static void
--+setPluginEnvironment (const char *name)
--+{
--+ if (!strcmp (name, "opengl"))
--+ setOpenGLPluginEnvironment ();
--+}
--+
--+static void
--+unsetPluginEnvironment (const char *name)
--+{
--+ if (!strcmp (name, "unityshell"))
--+ unsetUnityshellPluginEnvironment ();
--+}
--+
--+static bool
-- dlloaderLoadPlugin (CompPlugin *p,
-- const char *path,
-- const char *name)
--@@ -127,6 +181,8 @@
-- if (cloaderLoadPlugin (p, path, name))
-- return true;
--
--+ setPluginEnvironment (name);
--+
-- if (path)
-- {
-- file = path;
--@@ -197,6 +253,8 @@
-- if (!loaded && dlhand)
-- dlclose (dlhand);
--
--+ unsetPluginEnvironment (name);
--+
-- return loaded;
-- }
--
--
-
-#=== modified file 'debian/rules'
-#--- a/debian/rules 2015-07-24 12:50:47 +0000
-#+++ b/debian/rules 2015-10-15 15:33:47 +0000
-#@@ -17,25 +17,6 @@
-#
-# CORE_ABIVERSION := $(shell sed -rn 's/^\#define[[:space:]]+CORE_ABIVERSION[[:space:]]+//p' include/core/abiversion.h )
-#
-#-override_dh_quilt_patch:
-#- dh_quilt_patch
-#- if test -r debian/patches/series.$(DEB_HOST_ARCH); then \
-#- pc=".pc.$(DEB_HOST_ARCH)"; \
-#- test -d "$(CURDIR)/$$pc" || mkdir "$(CURDIR)/$$pc"; \
-#- cp debian/patches/series.$(DEB_HOST_ARCH) $(CURDIR)/$$pc/series; \
-#- cd $(CURDIR); \
-#- QUILT_PC="$$pc" quilt upgrade || true; \
-#- QUILT_PC="$$pc" QUILT_PATCHES="debian/patches/" quilt push -a || true; \
-#- fi; \
-#-
-#-override_dh_quilt_unpatch:
-#- if test -r debian/patches/series.$(DEB_HOST_ARCH); then \
-#- pc=".pc.$(DEB_HOST_ARCH)"; \
-#- cd $(CURDIR); \
-#- QUILT_PC="$$pc" QUILT_PATCHES="debian/patches/" quilt pop -a || true; \
-#- fi; \
-#- dh_quilt_unpatch
-#-
-# override_dh_auto_configure:
-# # right now, xorg-gtest won't compile on arm.
-# ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures)))
-#@@ -93,5 +74,5 @@
-# #dh_auto_test
-#
-# %:
-#- dh $@ --parallel --with quilt,python2,migrations,translations
-#+ dh $@ --parallel --with python2,migrations,translations
-#
-#
-=== modified file 'metadata/core.xml.in'
---- a/metadata/core.xml.in 2015-03-18 21:06:14 +0000
-+++ b/metadata/core.xml.in 2015-10-15 14:23:22 +0000
-@@ -144,7 +144,7 @@
- <option name="focus_prevention_match" type="match">
- <_short>Focus Prevention Windows</_short>
- <_long>Focus prevention windows</_long>
-- <default>any</default>
-+ <default>!(class=Polkit-gnome-authentication-agent-1)</default>
- </option>
- </group>
- <group>
-@@ -179,7 +179,7 @@
- <option name="minimize_window_key" type="key">
- <_short>Minimize Window</_short>
- <_long>Minimize active window</_long>
-- <default>&lt;Alt&gt;F9</default>
-+ <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
- </option>
- <option name="minimize_window_button" type="button">
- <_short>Minimize Window</_short>
-@@ -188,16 +188,16 @@
- <option name="maximize_window_key" type="key">
- <_short>Maximize Window</_short>
- <_long>Maximize active window</_long>
-- <default>&lt;Alt&gt;F10</default>
-+ <default>&lt;Control&gt;&lt;Super&gt;Up</default>
- </option>
- <option name="unmaximize_window_key" type="key">
- <_short>Unmaximize Window</_short>
- <_long>Unmaximize active window</_long>
-- <default>&lt;Alt&gt;F5</default>
- </option>
- <option name="unmaximize_or_minimize_window_key" type="key">
- <_short>Unmaximize or Minimize Window</_short>
- <_long>Unmaximize or minimize active window</_long>
-+ <default>&lt;Control&gt;&lt;Super&gt;Down</default>
- </option>
- <option name="maximize_window_horizontally_key" type="key">
- <_short>Maximize Window Horizontally</_short>
-@@ -220,7 +220,6 @@
- <option name="show_desktop_key" type="key">
- <_short>Show Desktop</_short>
- <_long>Hide all windows and focus desktop</_long>
-- <default>&lt;Control&gt;&lt;Alt&gt;d</default>
- </option>
- <option name="show_desktop_edge" type="edge">
- <_short>Show Desktop</_short>
-@@ -230,6 +229,7 @@
- <option name="toggle_window_maximized_key" type="key">
- <_short>Toggle Window Maximized</_short>
- <_long>Toggle active window maximized</_long>
-+ <default>&lt;Control&gt;&lt;Alt&gt;KP_5</default>
- </option>
- <option name="toggle_window_maximized_button" type="button">
- <_short>Toggle Window Maximized</_short>
-@@ -254,7 +254,7 @@
- <option name="hsize" type="int">
- <_short>Horizontal Virtual Size</_short>
- <_long>Screen size multiplier for horizontal virtual size</_long>
-- <default>4</default>
-+ <default>1</default>
- <min>1</min>
- <max>32</max>
- </option>
-
-=== modified file 'plugins/animation/animation.xml.in'
---- a/plugins/animation/animation.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/animation/animation.xml.in 2015-10-15 14:23:22 +0000
-@@ -36,7 +36,7 @@
- <extensible/>
- <sort start="2"/>
- <default>
-- <value>animation:Zoom</value>
-+ <value>animation:Glide 2</value>
- <value>animation:Fade</value>
- <value>animation:Fade</value>
- </default>
-@@ -48,9 +48,9 @@
- <min>50</min>
- <max>4000</max>
- <default>
-- <value>200</value>
-- <value>150</value>
-- <value>150</value>
-+ <value>120</value>
-+ <value>80</value>
-+ <value>80</value>
- </default>
- </option>
- <option name="open_matches" type="list">
-@@ -58,8 +58,8 @@
- <_long>The windows that will be animated.</_long>
- <type>match</type>
- <default>
-- <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
-- <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
-+ <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver)</value>
-+ <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
- <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
- </default>
- </option>
-@@ -102,7 +102,7 @@
- <extensible/>
- <sort start="2"/>
- <default>
-- <value>animation:Zoom</value>
-+ <value>animation:Glide 2</value>
- <value>animation:Fade</value>
- <value>animation:Fade</value>
- </default>
-@@ -114,9 +114,9 @@
- <min>50</min>
- <max>4000</max>
- <default>
-- <value>200</value>
-- <value>150</value>
-- <value>150</value>
-+ <value>120</value>
-+ <value>80</value>
-+ <value>50</value>
- </default>
- </option>
- <option name="close_matches" type="list">
-@@ -124,8 +124,8 @@
- <_long>The windows that will be animated.</_long>
- <type>match</type>
- <default>
-- <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
-- <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
-+ <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver) &amp; !(name=gnome-screenshot)</value>
-+ <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
- <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
- </default>
- </option>
-@@ -168,7 +168,7 @@
- <extensible/>
- <sort start="2"/>
- <default>
-- <value>animation:Magic Lamp</value>
-+ <value>animation:Zoom</value>
- </default>
- </option>
- <option name="minimize_durations" type="list">
-@@ -178,7 +178,7 @@
- <min>50</min>
- <max>4000</max>
- <default>
-- <value>300</value>
-+ <value>220</value>
- </default>
- </option>
- <option name="minimize_matches" type="list">
-@@ -341,7 +341,7 @@
- <extensible/>
- <sort start="1"/>
- <default>
-- <value>animation:None</value>
-+ <value>animation:Fade</value>
- </default>
- </option>
- <option name="focus_durations" type="list">
-@@ -351,7 +351,7 @@
- <min>50</min>
- <max>4000</max>
- <default>
-- <value>300</value>
-+ <value>150</value>
- </default>
- </option>
- <option name="focus_matches" type="list">
-@@ -385,7 +385,7 @@
- <option name="time_step" type="int">
- <_short>Animation Time Step</_short>
- <_long>The amount of time in milliseconds between each render of the animation. The higher the number, the jerkier the movements become.</_long>
-- <default>10</default>
-+ <default>16</default>
- <min>1</min>
- <max>400</max>
- </option>
-@@ -473,7 +473,7 @@
- <option name="glide2_away_position" type="float">
- <_short>Away Position</_short>
- <_long>Closeness of window to camera at the end of the animation (1.0: Close to camera, -2.0: Away from camera).</_long>
-- <default>-0.4</default>
-+ <default>-0.1</default>
- <min>-2</min>
- <max>1</max>
- <precision>0.05</precision>
-@@ -481,7 +481,7 @@
- <option name="glide2_away_angle" type="float">
- <_short>Away Angle</_short>
- <_long>Angle of window at the end of the animation.</_long>
-- <default>-45</default>
-+ <default>0</default>
- <min>-540</min>
- <max>540</max>
- <precision>5</precision>
-@@ -686,7 +686,7 @@
- <option name="zoom_springiness" type="float">
- <_short>Springiness</_short>
- <_long>How spring-like the Zoom animation should be.</_long>
-- <default>0.0</default>
-+ <default>0.08</default>
- <min>0</min>
- <max>1</max>
- <precision>0.01</precision>
-
-=== modified file 'plugins/commands/commands.xml.in'
---- a/plugins/commands/commands.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/commands/commands.xml.in 2015-10-15 14:23:22 +0000
-@@ -117,7 +117,7 @@
- <option name="command20" type="string">
- <_short>Command line 20</_short>
- <_long>Command line to be executed in shell when run_command20 is invoked</_long>
-- <default></default>
-+ <default>/usr/bin/gnome-system-monitor -p</default>
- </option>
- </group>
- <group>
-@@ -205,6 +205,7 @@
- <option name="run_command20_key" type="key">
- <_short>Run command 20</_short>
- <_long>A keybinding that when invoked, will run the shell command identified by command20</_long>
-+ <default>&lt;Control&gt;&lt;Alt&gt;Delete</default>
- </option>
- </group>
- <group>
-
-=== modified file 'plugins/decor/decor.xml.in'
---- a/plugins/decor/decor.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/decor/decor.xml.in 2015-10-15 14:23:22 +0000
-@@ -31,7 +31,7 @@
- <option name="active_shadow_opacity" type="float">
- <_short>Shadow Opacity</_short>
- <_long>Drop shadow opacity</_long>
-- <default>0.5</default>
-+ <default>0.8</default>
- <min>0.01</min>
- <max>6.0</max>
- <precision>0.01</precision>
-@@ -66,7 +66,7 @@
- <option name="inactive_shadow_radius" type="float">
- <_short>Shadow Radius</_short>
- <_long>Drop shadow radius</_long>
-- <default>8.0</default>
-+ <default>5.0</default>
- <min>0.1</min>
- <max>13.0</max>
- <precision>0.1</precision>
-@@ -74,7 +74,7 @@
- <option name="inactive_shadow_opacity" type="float">
- <_short>Shadow Opacity</_short>
- <_long>Drop shadow opacity</_long>
-- <default>0.5</default>
-+ <default>0.4</default>
- <min>0.01</min>
- <max>6.0</max>
- <precision>0.01</precision>
-@@ -101,7 +101,7 @@
- <option name="command" type="string">
- <_short>Command</_short>
- <_long>Decorator command line that is executed if no decorator is already running.</_long>
-- <default>exec \"${COMPIZ_BIN_PATH}compiz-decorator\"</default>
-+ <default>/usr/bin/gtk-window-decorator</default>
- </option>
- <option name="mipmap" type="bool">
- <_short>Mipmap</_short>
-
-=== modified file 'plugins/expo/expo.xml.in'
---- a/plugins/expo/expo.xml.in 2013-06-26 08:19:21 +0000
-+++ b/plugins/expo/expo.xml.in 2015-10-15 14:23:22 +0000
-@@ -17,6 +17,7 @@
- <plugin>wobbly</plugin>
- <plugin>animation</plugin>
- <plugin>wallpaper</plugin>
-+ <plugin>imgpng</plugin>
- </relation>
- </deps>
- <options>
-@@ -25,7 +26,7 @@
- <option name="expo_key" type="key">
- <_short>Expo Key</_short>
- <_long>Initiate or terminate Expo mode with this keyboard shortcut.</_long>
-- <default>&lt;Super&gt;e</default>
-+ <default>&lt;Super&gt;s</default>
- </option>
- <option name="expo_button" type="button">
- <_short>Expo Button</_short>
-@@ -36,7 +37,6 @@
- <_short>Expo Corner/Edge</_short>
- <_long>Initiate or terminate Expo mode by moving the pointer to this corner or edge of your screen(s).</_long>
- <default>
-- <edge name="TopLeft"/>
- </default>
- </option>
- <option name="double_click_time" type="int">
-@@ -80,7 +80,7 @@
- <option name="zoom_time" type="float">
- <_short>Animation Duration</_short>
- <_long>Duration of the selected animation (in seconds).</_long>
-- <default>0.5</default>
-+ <default>0.3</default>
- <min>0.1</min>
- <max>5.0</max>
- <precision>0.1</precision>
-@@ -142,12 +142,12 @@
- <option name="x_offset" type="int">
- <_short>X Offset</_short>
- <_long>Horizontal offset (in pixels).</_long>
-- <default>0</default>
-+ <default>64</default>
- </option>
- <option name="y_offset" type="int">
- <_short>Y Offset</_short>
- <_long>Vertical offset (in pixels).</_long>
-- <default>0</default>
-+ <default>24</default>
- </option>
- <option name="distance" type="float">
- <_short>Camera Distance</_short>
-@@ -160,7 +160,7 @@
- <option name="vp_distance" type="float">
- <_short>Viewport Distance</_short>
- <_long>The distance between viewports in Expo mode.</_long>
-- <default>0.10</default>
-+ <default>0.2</default>
- <min>0.0</min>
- <max>1.0</max>
- <precision>0.01</precision>
-@@ -188,7 +188,7 @@
- <_long>How the Expo wall should be displayed, if multiple output devices are used.</_long>
- <min>0</min>
- <max>1</max>
-- <default>0</default>
-+ <default>1</default>
- <desc>
- <value>0</value>
- <_name>One big wall</_name>
-@@ -203,7 +203,7 @@
- <option name="vp_brightness" type="float">
- <_short>Brightness</_short>
- <_long>The brightness of unfocused viewports (in percent).</_long>
-- <default>75.0</default>
-+ <default>40.0</default>
- <min>0.0</min>
- <max>100.0</max>
- <precision>0.1</precision>
-@@ -223,7 +223,7 @@
- <red>0xfbfb</red>
- <green>0x8b8b</green>
- <blue>0x0</blue>
-- <alpha>0x0</alpha>
-+ <alpha>0xffff</alpha>
- </default>
- </option>
- </subgroup>
-@@ -232,7 +232,7 @@
- <option name="reflection" type="bool">
- <_short>Reflection</_short>
- <_long>Render a realtime reflection of the viewports on the ground.</_long>
-- <default>true</default>
-+ <default>false</default>
- </option>
- <option name="ground_color1" type="color">
- <_short>Ground Color (near)</_short>
-
-=== modified file 'plugins/ezoom/ezoom.xml.in'
---- a/plugins/ezoom/ezoom.xml.in 2013-07-21 22:08:20 +0000
-+++ b/plugins/ezoom/ezoom.xml.in 2015-10-15 14:23:22 +0000
-@@ -30,7 +30,7 @@
- <option type="button" name="zoom_in_button">
- <_short>Zoom In Button</_short>
- <_long>Mouse button shortcut to invoke zooming in.</_long>
-- <default>&lt;Super&gt;Button4</default>
-+ <default></default>
- </option>
- <option type="key" name="zoom_in_key">
- <_short>Zoom In Key</_short>
-@@ -39,7 +39,7 @@
- <option type="button" name="zoom_out_button">
- <_short>Zoom Out Button</_short>
- <_long>Mouse button shortcut to invoke zooming out.</_long>
-- <default>&lt;Super&gt;Button5</default>
-+ <default></default>
- </option>
- <option type="key" name="zoom_out_key">
- <_short>Zoom Out Key</_short>
-@@ -48,7 +48,7 @@
- <option type="button" name="zoom_box_button">
- <_short>Invoke Zoom Box Button</_short>
- <_long>Define a rectangle area and zoom into it.</_long>
-- <default>&lt;Super&gt;Button2</default>
-+ <default></default>
- </option>
- <option name="zoom_box_outline_color" type="color">
- <_short>Zoom Box Outline Color</_short>
-@@ -162,7 +162,7 @@
- <option type="key" name="fit_to_window_key">
- <_short>Fit zoomed area to window</_short>
- <_long>Zooms in/out so the focused window is zoomed to the maximum while still being fully visible.</_long>
-- <default>&lt;Super&gt;r</default>
-+ <default></default>
- </option>
- </subgroup>
- </group>
-
-=== modified file 'plugins/fade/fade.xml.in'
---- a/plugins/fade/fade.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/fade/fade.xml.in 2015-10-15 14:23:22 +0000
-@@ -10,6 +10,7 @@
- </requirement>
- <relation type="after">
- <plugin>decor</plugin>
-+ <plugin>staticswitcher</plugin>
- </relation>
- <relation type="before">
- <plugin>cube</plugin>
-@@ -50,7 +51,7 @@
- <option name="window_match" type="match">
- <_short>Fade windows</_short>
- <_long>Windows that should be fading</_long>
-- <default>any</default>
-+ <default>any &amp; !(title=notify-osd)</default>
- </option>
- <option name="visual_bell" type="bell">
- <_short>Visual Bell</_short>
-
-=== modified file 'plugins/gnomecompat/gnomecompat.xml.in'
---- a/plugins/gnomecompat/gnomecompat.xml.in 2014-03-11 13:46:30 +0000
-+++ b/plugins/gnomecompat/gnomecompat.xml.in 2015-10-15 14:23:22 +0000
-@@ -54,6 +54,7 @@
- <option name="run_command_terminal_key" type="key">
- <_short>Open a terminal</_short>
- <_long>Open a terminal</_long>
-+ <default>&lt;Control&gt;&lt;Alt&gt;T</default>
- </option>
- </group>
- </options>
-
-=== modified file 'plugins/grid/grid.xml.in'
---- a/plugins/grid/grid.xml.in 2013-12-04 19:21:12 +0000
-+++ b/plugins/grid/grid.xml.in 2015-10-15 14:23:22 +0000
-@@ -68,12 +68,12 @@
- <option name="put_maximize_key" type="key">
- <_short>Maximize Key</_short>
- <_long>Maximize window.</_long>
-- <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
-+ <default>&lt;Control&gt;&lt;Super&gt;Up</default>
- </option>
- <option name="put_restore_key" type="key">
- <_short>Restore</_short>
- <_long>Restore window to it's original size. Note: Use the same shortcut you are using to unmaximize a window to be able to restore grid-maximized windows.</_long>
-- <default>&lt;Alt&gt;F5</default>
-+ <default>&lt;Control&gt;&lt;Super&gt;Down</default>
- </option>
- <option name="left_maximize" type="key">
- <_short>Left Maximize</_short>
-
-=== modified file 'plugins/resize/resize.xml.in'
---- a/plugins/resize/resize.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/resize/resize.xml.in 2015-10-15 14:23:22 +0000
-@@ -56,15 +56,15 @@
- <option name="maximize_vertically" type="bool">
- <short>Maximize Vertically if screen edge hit</short>
- <long>Maximizes the window vertically if the top or bottom screen edge is hit while resizing</long>
-- <default>false</default>
-+ <default>true</default>
- </option>
- <option name="border_color" type="color">
- <_short>Border Color</_short>
- <_long>Border color used for outline and rectangle resize modes</_long>
- <default>
-- <red>0x2f2f</red>
-- <green>0x2f2f</green>
-- <blue>0x4f4f</blue>
-+ <red>0xfbfb</red>
-+ <green>0x8b8b</green>
-+ <blue>0x0</blue>
- <alpha>0x9f9f</alpha>
- </default>
- </option>
-@@ -72,10 +72,10 @@
- <_short>Fill Color</_short>
- <_long>Fill color used for rectangle resize mode</_long>
- <default>
-- <red>0x2f2f</red>
-- <green>0x2f2f</green>
-- <blue>0x4f4f</blue>
-- <alpha>0x4f4f</alpha>
-+ <red>0xfbfb</red>
-+ <green>0x8b8b</green>
-+ <blue>0x0</blue>
-+ <alpha>0x1919</alpha>
- </default>
- </option>
- <subgroup>
-
-=== modified file 'plugins/scale/scale.xml.in'
---- a/plugins/scale/scale.xml.in 2014-04-17 14:39:37 +0000
-+++ b/plugins/scale/scale.xml.in 2015-10-15 14:23:22 +0000
-@@ -21,7 +21,7 @@
- <option name="spacing" type="int">
- <_short>Spacing</_short>
- <_long>Space between windows</_long>
-- <default>10</default>
-+ <default>20</default>
- <min>0</min>
- <max>250</max>
- </option>
-@@ -40,7 +40,7 @@
- <option name="speed" type="float">
- <_short>Speed</_short>
- <_long>Scale speed</_long>
-- <default>1.5</default>
-+ <default>5.0</default>
- <min>0.1</min>
- <max>50</max>
- <precision>0.1</precision>
-@@ -48,7 +48,7 @@
- <option name="timestep" type="float">
- <_short>Timestep</_short>
- <_long>Scale timestep</_long>
-- <default>1.2</default>
-+ <default>0.1</default>
- <min>0.1</min>
- <max>50</max>
- <precision>0.1</precision>
-@@ -61,7 +61,7 @@
- <option name="opacity" type="int">
- <_short>Opacity</_short>
- <_long>Amount of opacity in percent</_long>
-- <default>75</default>
-+ <default>100</default>
- <min>0</min>
- <max>100</max>
- </option>
-@@ -70,7 +70,7 @@
- <_long>Overlay an icon on windows once they are scaled</_long>
- <min>0</min>
- <max>2</max>
-- <default>1</default>
-+ <default>0</default>
- <desc>
- <value>0</value>
- <_name>None</_name>
-@@ -123,7 +123,7 @@
- <_long>Selects where windows are scaled if multiple output devices are used.</_long>
- <min>0</min>
- <max>1</max>
-- <default>0</default>
-+ <default>1</default>
- <desc>
- <value>0</value>
- <_name>On current output device</_name>
-@@ -139,7 +139,7 @@
- <option name="key_bindings_toggle" type="bool">
- <_short>Key Bindings Toggle Scale Mode</_short>
- <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
-- <default>false</default>
-+ <default>true</default>
- </option>
- <option name="button_bindings_toggle" type="bool">
- <_short>Button Bindings Toggle Scale Mode</_short>
-@@ -149,15 +149,12 @@
- <option name="initiate_edge" type="edge">
- <_short>Initiate Window Picker</_short>
- <_long>Layout and start transforming windows</_long>
-- <default>
-- <edge name="TopRight"/>
-- </default>
- <allowed edgednd="true"/>
- </option>
- <option name="initiate_key" type="key">
- <_short>Initiate Window Picker</_short>
- <_long>Layout and start transforming windows</_long>
-- <default>&lt;Shift&gt;&lt;Alt&gt;Up</default>
-+ <default>&lt;Super&gt;w</default>
- </option>
- <option name="initiate_button" type="button">
- <_short>Initiate Window Picker</_short>
-@@ -175,6 +172,7 @@
- <option name="initiate_all_key" type="key">
- <_short>Initiate Window Picker For All Windows</_short>
- <_long>Layout and start transforming all windows</_long>
-+ <default>&lt;Super&gt;&lt;Shift&gt;w</default>
- </option>
- <option name="initiate_group_edge" type="edge">
- <_short>Initiate Window Picker For Window Group</_short>
-
-=== modified file 'plugins/staticswitcher/staticswitcher.xml.in'
---- a/plugins/staticswitcher/staticswitcher.xml.in 2015-08-22 21:46:01 +0000
-+++ b/plugins/staticswitcher/staticswitcher.xml.in 2015-10-15 14:23:22 +0000
-@@ -11,7 +11,6 @@
- <relation type="after">
- <plugin>composite</plugin>
- <plugin>opengl</plugin>
-- <plugin>fade</plugin>
- <plugin>compiztoolbox</plugin>
- <plugin>decor</plugin>
- </relation>
-@@ -140,12 +139,12 @@
- <option name="auto_change_vp" type="bool">
- <_short>Auto Change Viewport</_short>
- <_long>Change to the viewport of the selected window while switching</_long>
-- <default>false</default>
-+ <default>true</default>
- </option>
- <option name="popup_delay" type="float">
- <_short>Popup Window Delay</_short>
- <_long>Time (in s) the popup window should be delayed before appearing</_long>
-- <default>0.0</default>
-+ <default>0.2</default>
- <min>0.0</min>
- <max>2.0</max>
- <precision>0.05</precision>
-@@ -153,7 +152,7 @@
- <option name="mouse_select" type="bool">
- <_short>Allow Mouse Selection</_short>
- <_long>Allow selection of windows from the switcher window with the mouse</_long>
-- <default>false</default>
-+ <default>true</default>
- </option>
- </group>
- <group>
-@@ -161,14 +160,14 @@
- <option name="saturation" type="int">
- <_short>Saturation</_short>
- <_long>Amount of saturation in percent</_long>
-- <default>50</default>
-+ <default>100</default>
- <min>0</min>
- <max>100</max>
- </option>
- <option name="brightness" type="int">
- <_short>Brightness</_short>
- <_long>Amount of brightness in percent</_long>
-- <default>50</default>
-+ <default>100</default>
- <min>0</min>
- <max>100</max>
- </option>
-@@ -192,7 +191,7 @@
- <option name="mipmap" type="bool">
- <_short>Mipmap</_short>
- <_long>Generate mipmaps when possible for higher quality scaling</_long>
-- <default>true</default>
-+ <default>false</default>
- </option>
- <option name="row_align" type="int">
- <_short>Row Alignment</_short>
-@@ -221,7 +220,7 @@
- <option name="bring_to_front" type="bool">
- <_short>Bring To Front</_short>
- <_long>Bring selected window to front</_long>
-- <default>true</default>
-+ <default>false</default>
- </option>
- <_short>Selected Window Highlight</_short>
- <option name="highlight_mode" type="int">
-@@ -229,7 +228,7 @@
- <_long>Mode for highlighting the currently selected window</_long>
- <min>0</min>
- <max>2</max>
-- <default>1</default>
-+ <default>0</default>
- <desc>
- <value>0</value>
- <_name>None</_name>
-
-=== modified file 'plugins/vpswitch/vpswitch.xml.in'
---- a/plugins/vpswitch/vpswitch.xml.in 2012-10-15 10:31:51 +0000
-+++ b/plugins/vpswitch/vpswitch.xml.in 2015-10-15 14:23:22 +0000
-@@ -95,13 +95,11 @@
- <option name="next_button" type="button">
- <_short>Move Next</_short>
- <_long>Move to the next viewport</_long>
-- <default>Button5</default>
- <internal/>
- </option>
- <option name="prev_button" type="button">
- <_short>Move Prev</_short>
- <_long>Move to the previous viewport</_long>
-- <default>Button4</default>
- <internal/>
- </option>
- <option name="initiate_button" type="button">
-
-=== modified file 'plugins/wall/wall.xml.in'
---- a/plugins/wall/wall.xml.in 2013-08-28 12:18:22 +0000
-+++ b/plugins/wall/wall.xml.in 2015-10-15 14:23:22 +0000
-@@ -30,12 +30,12 @@
- <option name="miniscreen" type="bool">
- <_short>Show Live Viewport Previews</_short>
- <_long>Show live viewport previews in switcher window</_long>
-- <default>false</default>
-+ <default>true</default>
- </option>
- <option name="preview_timeout" type="float">
- <_short>Switch Target Preview Visibility Time</_short>
- <_long>Duration (in s) the switch target preview should remain visible after switching ends.</_long>
-- <default>0.4</default>
-+ <default>0.2</default>
- <min>0.0</min>
- <max>2.0</max>
- <precision>0.05</precision>
-@@ -43,7 +43,7 @@
- <option name="preview_scale" type="int">
- <_short>Preview Scale</_short>
- <_long>Size of the preview in %</_long>
-- <default>100</default>
-+ <default>130</default>
- <min>0</min>
- <max>400</max>
- </option>
-@@ -57,7 +57,7 @@
- <option name="border_width" type="int">
- <_short>Border Width</_short>
- <_long>Width of the border between the previews</_long>
-- <default>10</default>
-+ <default>7</default>
- <min>0</min>
- <max>30</max>
- </option>
-@@ -65,10 +65,10 @@
- <_short>Outline Color</_short>
- <_long>Outline color of the switcher window.</_long>
- <default>
-- <red>0x3333</red>
-- <green>0x3333</green>
-- <blue>0x3333</blue>
-- <alpha>0xd998</alpha>
-+ <red>0xffff</red>
-+ <green>0xffff</green>
-+ <blue>0xffff</blue>
-+ <alpha>0x3232</alpha>
- </default>
- </option>
- <subgroup>
-@@ -78,30 +78,30 @@
- <_short>Base Color</_short>
- <_long>First color for the background gradient of the switcher window.</_long>
- <default>
-- <red>0xcccc</red>
-- <green>0xcccc</green>
-- <blue>0xe665</blue>
-- <alpha>0xd998</alpha>
-+ <red>0x0000</red>
-+ <green>0x0000</green>
-+ <blue>0x0000</blue>
-+ <alpha>0x6464</alpha>
- </default>
- </option>
- <option name="background_gradient_highlight_color" type="color">
- <_short>Highlight Color</_short>
- <_long>Second color for the background gradient of the switcher window.</_long>
- <default>
-- <red>0xf332</red>
-- <green>0xf332</green>
-- <blue>0xffff</blue>
-- <alpha>0xd998</alpha>
-+ <red>0x0000</red>
-+ <green>0x0000</green>
-+ <blue>0x0000</blue>
-+ <alpha>0x6464</alpha>
- </default>
- </option>
- <option name="background_gradient_shadow_color" type="color">
- <_short>Shadow Color</_short>
- <_long>Third color for the background gradient of the switcher window.</_long>
- <default>
-- <red>0xf332</red>
-- <green>0xf332</green>
-- <blue>0xffff</blue>
-- <alpha>0xd998</alpha>
-+ <red>0x0000</red>
-+ <green>0x0000</green>
-+ <blue>0x0000</blue>
-+ <alpha>0x6464</alpha>
- </default>
- </option>
- </subgroup>
-@@ -112,20 +112,20 @@
- <_short>Base Color</_short>
- <_long>First color for the thumb gradient of the switcher window.</_long>
- <default>
-- <red>0x3333</red>
-- <green>0x3333</green>
-- <blue>0x3333</blue>
-- <alpha>0x5999</alpha>
-+ <red>0x5555</red>
-+ <green>0x5555</green>
-+ <blue>0x5555</blue>
-+ <alpha>0x3232</alpha>
- </default>
- </option>
- <option name="thumb_gradient_highlight_color" type="color">
- <_short>Highlight Color</_short>
- <_long>Second color for the thumb gradient of the switcher window.</_long>
- <default>
-- <red>0x3fff</red>
-- <green>0x3fff</green>
-- <blue>0x3fff</blue>
-- <alpha>0x3fff</alpha>
-+ <red>0x5555</red>
-+ <green>0x5555</green>
-+ <blue>0x5555</blue>
-+ <alpha>0x3232</alpha>
- </default>
- </option>
- </subgroup>
-@@ -139,7 +139,7 @@
- <red>0xffff</red>
- <green>0xffff</green>
- <blue>0xffff</blue>
-- <alpha>0xf332</alpha>
-+ <alpha>0xffff</alpha>
- </default>
- </option>
- <option name="thumb_highlight_gradient_shadow_color" type="color">
-@@ -149,7 +149,7 @@
- <red>0xdfff</red>
- <green>0xdfff</green>
- <blue>0xdfff</blue>
-- <alpha>0xa665</alpha>
-+ <alpha>0xffff</alpha>
- </default>
- </option>
- </subgroup>
-@@ -201,7 +201,7 @@
- <option name="auto_switch_vp_and_window" type="bool">
- <_short>Auto Switch Vp And Window</_short>
- <_long>Auto switch the viewport and move window when Alt-Tab to window that is more than half contained in another viewport</_long>
-- <default>true</default>
-+ <default>false</default>
- </option>
- </group>
- <group>
-@@ -356,7 +356,7 @@
- <option name="edgeflip_move" type="bool">
- <_short>Edge Flip Move</_short>
- <_long>Flip viewport when moving a window to a screen edge</_long>
-- <default>true</default>
-+ <default>false</default>
- </option>
- <option name="edgeflip_dnd" type="bool">
- <_short>Edge Flip DnD</_short>
-
-=== modified file 'src/plugin.cpp'
---- a/src/plugin.cpp 2015-01-13 19:22:25 +0000
-+++ b/src/plugin.cpp 2015-10-15 14:23:58 +0000
-@@ -132,6 +132,60 @@
- }
-
- static bool
-+setOpenGLPluginEnvironment ()
-+{
-+ /*
-+ * Check if the hardware is adequate for Unity and if not, use LLVMpipe.
-+ * Unfortunately the design of Mesa requires that this be done before
-+ * libGL is loaded, which means before the opengl plugin is loaded.
-+ */
-+ bool toggledLLVM = false;
-+
-+ if (!getenv ("LIBGL_ALWAYS_SOFTWARE"))
-+ {
-+ const char *profile = getenv ("COMPIZ_CONFIG_PROFILE");
-+ if (profile && strcmp (profile, "ubuntu") == 0)
-+ {
-+ int result = system ("/usr/lib/nux/unity_support_test");
-+ int status = WEXITSTATUS (result);
-+ compLogMessage ("core", CompLogLevelInfo,
-+ "Unity is %s",
-+ status == 0 ? "fully supported by your hardware." :
-+ status == 127 ? "undetectable" :
-+ "not supported by your hardware. "
-+ "Enabling software rendering instead (slow).");
-+ if (status > 0 && status < 127)
-+ {
-+ setenv ("LIBGL_ALWAYS_SOFTWARE", "1", 1);
-+ toggledLLVM = true;
-+ }
-+ }
-+ }
-+
-+ return toggledLLVM;
-+}
-+
-+static void
-+unsetUnityshellPluginEnvironment ()
-+{
-+ unsetenv ("LIBGL_ALWAYS_SOFTWARE");
-+}
-+
-+static void
-+setPluginEnvironment (const char *name)
-+{
-+ if (strcmp (name, "opengl") == 0)
-+ setOpenGLPluginEnvironment ();
-+}
-+
-+static void
-+unsetPluginEnvironment (const char *name)
-+{
-+ if (strcmp (name, "unityshell") == 0)
-+ unsetUnityshellPluginEnvironment ();
-+}
-+
-+static bool
- dlloaderLoadPlugin (CompPlugin *p,
- const char *path,
- const char *name)
-@@ -143,6 +197,8 @@
- if (cloaderLoadPlugin (p, path, name))
- return true;
-
-+ setPluginEnvironment (name);
-+
- if (path)
- {
- file = path;
-@@ -213,6 +269,8 @@
- if (!loaded && dlhand)
- dlclose (dlhand);
-
-+ unsetPluginEnvironment (name);
-+
- return loaded;
- }
-
-
-=== modified file 'tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp'
---- a/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2013-02-14 05:57:39 +0000
-+++ b/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2015-10-15 14:23:22 +0000
-@@ -46,7 +46,7 @@
-
- namespace
- {
--unsigned int DEFAULT_VIEWPORT_WIDTH = 4;
-+unsigned int DEFAULT_VIEWPORT_WIDTH = 1;
- unsigned int DEFAULT_VIEWPORT_HEIGHT = 1;
-
- bool Advance (Display *d, bool r)
-
diff --git a/PKGBUILD b/PKGBUILD
index a64098e3807f..1f472791a6f5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgname=compiz
pkgver=0.9.13.0
-pkgrel=7
+pkgrel=8
pkgdesc="Composite manager for Aiglx and Xgl, with plugins and CCSM"
arch=('i686' 'x86_64')
url="https://launchpad.net/compiz"
@@ -22,18 +22,20 @@ source=("https://launchpad.net/${pkgname}/${pkgver:0:6}/${pkgver}/+download/${pk
"focus-prevention-disable.patch"
"gtk-extents.patch"
"trailfocus-fix.patch"
- "3981_3980.diff")
+ "reverse-unity-config.patch"
+ "metacity322-branch-rollup.patch")
sha256sums=('f08eb54d578be559e3e723f3fe4291a56f5c96b2fdfb9c9e74ebb6596a1ca702'
'f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b'
'16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9'
'01e94ac52cd39eb5462a8505c7df61c7b14b05159de64f8700dfadb524bdb2ce'
- '36781e0eebdb6f0b4b29bb69e9aa342688e48ea0a6fb14dff60e00a3cf74815d')
+ '97778fde6eff779e10a03f5c03f26ffdda8bdb89091956fee19ce84d7d8c9ef9'
+ '4deb954e539853ab5297d0603b1dd7ce72361425d7d88e4e49c9351d91bf0a91')
prepare() {
cd "${pkgname}-${pkgver}"
- # Reverse Ubuntu specific configuration patches
- patch -Rp1 -i "${srcdir}/3981_3980.diff"
+ # Reverse Unity specific configuration patches
+ patch -p1 -i "${srcdir}/reverse-unity-config.patch"
# Fix decorator start command
sed -i 's/exec \\"${COMPIZ_BIN_PATH}compiz-decorator\\"/exec \/usr\/bin\/compiz-decorator/g' plugins/decor/decor.xml.in
@@ -50,6 +52,9 @@ prepare() {
# Fix ambiguous function call in trailfocus plugin
patch -p1 -i "${srcdir}/trailfocus-fix.patch"
+
+ # Metacity 3.22 support
+ patch -p1 -i "${srcdir}/metacity322-branch-rollup.patch"
}
build() {
diff --git a/metacity322-branch-rollup.patch b/metacity322-branch-rollup.patch
new file mode 100644
index 000000000000..68eb38897fd8
--- /dev/null
+++ b/metacity322-branch-rollup.patch
@@ -0,0 +1,1617 @@
+diff -Nur original/gtk/CMakeLists.txt modified/gtk/CMakeLists.txt
+--- original/gtk/CMakeLists.txt 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/CMakeLists.txt 2016-10-15 09:32:49.000000000 +0100
+@@ -25,24 +25,15 @@
+ set (CMAKE_REQUIRED_LIBRARIES "")
+
+ if (USE_METACITY)
+- pkg_check_modules (LIBMETACITY libmetacity>=3.19.1)
++ pkg_check_modules (LIBMETACITY libmetacity>=3.20.0)
+
+ if (LIBMETACITY_FOUND)
+- compiz_set (HAVE_METACITY_3_20_0 1)
++ compiz_pkg_check_modules (HAVE_METACITY_3_22_0 libmetacity>=3.22.0)
+
+ set (METACITY_INCLUDE_DIRS ${LIBMETACITY_INCLUDE_DIRS})
+ set (METACITY_LIBRARIES ${LIBMETACITY_LIBRARIES})
+ else (LIBMETACITY_FOUND)
+- pkg_check_modules (LIBMETACITY_PRIVATE libmetacity-private>=3.16.0)
+-
+- if (LIBMETACITY_PRIVATE_FOUND)
+- compiz_set (HAVE_METACITY_3_20_0 0)
+-
+- set (METACITY_INCLUDE_DIRS ${LIBMETACITY_PRIVATE_INCLUDE_DIRS})
+- set (METACITY_LIBRARIES ${LIBMETACITY_PRIVATE_LIBRARIES})
+- else (LIBMETACITY_PRIVATE_FOUND)
+- compiz_set (USE_METACITY 0)
+- endif (LIBMETACITY_PRIVATE_FOUND)
++ compiz_set (USE_METACITY 0)
+ endif (LIBMETACITY_FOUND)
+ endif (USE_METACITY)
+
+diff -Nur original/gtk/config.h.gtk.in modified/gtk/config.h.gtk.in
+--- original/gtk/config.h.gtk.in 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/config.h.gtk.in 2016-10-15 09:32:49.000000000 +0100
+@@ -1,7 +1,7 @@
+ /* Define to 1 if Metacity support is enabled */
+ #cmakedefine USE_METACITY 1
+
+-/* Define to 1 if Metacity version >= 3.20.0 */
+-#cmakedefine HAVE_METACITY_3_20_0 1
++/* Define to 1 if Metacity version >= 3.22.0 */
++#cmakedefine HAVE_METACITY_3_22_0 1
+
+ #define GETTEXT_PACKAGE "${GETTEXT_PACKAGE}"
+diff -Nur original/gtk/window-decorator/decorator.c modified/gtk/window-decorator/decorator.c
+--- original/gtk/window-decorator/decorator.c 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/decorator.c 2016-10-15 09:32:49.000000000 +0100
+@@ -778,11 +778,26 @@
+ decor_shadow_options_t *opt_shadow,
+ decor_shadow_options_t *opt_no_shadow)
+ {
++ gint left, right, top, bottom;
++
+ if (*shadow_normal)
+ {
+ decor_shadow_destroy (xdisplay, *shadow_normal);
+ *shadow_normal = NULL;
+ }
++
++ left = frame->win_extents.left;
++ right = frame->win_extents.right;
++ top = frame->win_extents.top;
++ bottom = frame->win_extents.bottom;
++
++ if (frame->has_shadow_extents)
++ {
++ left += frame->shadow_extents.left;
++ right += frame->shadow_extents.right;
++ top += frame->shadow_extents.top;
++ bottom += frame->shadow_extents.bottom;
++ }
+
+ /*
+ * Warning: decor_shadow_create does more than return a decor_shadow_t*
+@@ -793,19 +808,12 @@
+ *shadow_normal = decor_shadow_create (xdisplay,
+ screen,
+ 1, 1,
+- frame->win_extents.left,
+- frame->win_extents.right,
+- frame->win_extents.top,
+- frame->win_extents.bottom,
+- frame->win_extents.left -
+- TRANSLUCENT_CORNER_SIZE,
+- frame->win_extents.right -
+- TRANSLUCENT_CORNER_SIZE,
+- frame->win_extents.top -
+- TRANSLUCENT_CORNER_SIZE,
+- frame->win_extents.bottom -
+- TRANSLUCENT_CORNER_SIZE,
+- opt_shadow,
++ left, right, top, bottom,
++ left - TRANSLUCENT_CORNER_SIZE,
++ right - TRANSLUCENT_CORNER_SIZE,
++ top - TRANSLUCENT_CORNER_SIZE,
++ bottom - TRANSLUCENT_CORNER_SIZE,
++ frame->has_shadow_extents ? opt_no_shadow : opt_shadow,
+ context_normal,
+ draw_border_shape,
+ (void *) info);
+@@ -817,6 +825,19 @@
+ *shadow_max = NULL;
+ }
+
++ left = frame->max_win_extents.left;
++ right = frame->max_win_extents.right;
++ top = frame->max_win_extents.top;
++ bottom = frame->max_win_extents.bottom;
++
++ if (frame->has_shadow_extents)
++ {
++ left += frame->max_shadow_extents.left;
++ right += frame->max_shadow_extents.right;
++ top += frame->max_shadow_extents.top;
++ bottom += frame->max_shadow_extents.bottom;
++ }
++
+ info->state = (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY |
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY);
+
+@@ -824,14 +845,11 @@
+ decor_shadow_create (xdisplay,
+ screen,
+ 1, 1,
+- frame->max_win_extents.left,
+- frame->max_win_extents.right,
+- frame->max_win_extents.top,
+- frame->max_win_extents.bottom,
+- frame->max_win_extents.left - TRANSLUCENT_CORNER_SIZE,
+- frame->max_win_extents.right - TRANSLUCENT_CORNER_SIZE,
+- frame->max_win_extents.top - TRANSLUCENT_CORNER_SIZE,
+- frame->max_win_extents.bottom - TRANSLUCENT_CORNER_SIZE,
++ left, right, top, bottom,
++ left - TRANSLUCENT_CORNER_SIZE,
++ right - TRANSLUCENT_CORNER_SIZE,
++ top - TRANSLUCENT_CORNER_SIZE,
++ bottom - TRANSLUCENT_CORNER_SIZE,
+ opt_no_shadow, /* No shadow when maximized */
+ context_max,
+ draw_border_shape,
+@@ -1360,13 +1378,16 @@
+
+ frame->win_extents = _shadow_extents;
+ frame->max_win_extents = _shadow_extents;
+- frame->win_extents = _shadow_extents;
+ frame->window_context_active = _shadow_context;
+ frame->window_context_inactive = _shadow_context;
+ frame->max_window_context_active = _shadow_context;
+ frame->max_window_context_inactive = _shadow_context;
+ frame->update_shadow = bare_frame_update_shadow;
+
++ frame->has_shadow_extents = FALSE;
++ frame->shadow_extents = _shadow_extents;
++ frame->max_shadow_extents = _shadow_extents;
++
+ return frame;
+ }
+
+@@ -1387,6 +1408,7 @@
+ 0, 0, 0, 0
+ };
+
++ decor_extents_t _shadow_extents = { 0, 0, 0, 0 };
+ decor_extents_t _win_extents = { 6, 6, 6, 6 };
+ decor_extents_t _max_win_extents = { 6, 6, 4, 6 };
+
+@@ -1398,5 +1420,9 @@
+ frame->max_window_context_active = _max_window_context;
+ frame->max_window_context_inactive = _max_window_context;
+
++ frame->has_shadow_extents = FALSE;
++ frame->shadow_extents = _shadow_extents;
++ frame->max_shadow_extents = _shadow_extents;
++
+ return frame;
+ }
+diff -Nur original/gtk/window-decorator/gtk-window-decorator.h modified/gtk/window-decorator/gtk-window-decorator.h
+--- original/gtk/window-decorator/gtk-window-decorator.h 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/gtk-window-decorator.h 2016-10-15 09:32:49.000000000 +0100
+@@ -221,6 +221,10 @@
+ gint text_height;
+ gchar *type;
+
++ gboolean has_shadow_extents;
++ decor_extents_t shadow_extents;
++ decor_extents_t max_shadow_extents;
++
+ frame_update_shadow_proc update_shadow;
+ gint refcount;
+ };
+diff -Nur original/gtk/window-decorator/gwd-settings-storage.c modified/gtk/window-decorator/gwd-settings-storage.c
+--- original/gtk/window-decorator/gwd-settings-storage.c 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/gwd-settings-storage.c 2016-10-15 09:32:49.000000000 +0100
+@@ -24,7 +24,7 @@
+
+ #include <gtk/gtk.h>
+
+-#ifdef HAVE_METACITY_3_20_0
++#ifdef USE_METACITY
+ #include <libmetacity/meta-theme.h>
+ #endif
+
+@@ -33,13 +33,7 @@
+
+ static const gchar * ORG_COMPIZ_GWD = "org.compiz.gwd";
+ static const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES = "org.gnome.desktop.wm.preferences";
+-
+-#ifdef HAVE_METACITY_3_20_0
+ static const gchar * ORG_GNOME_METACITY_THEME = "org.gnome.metacity.theme";
+-#else
+-static const gchar * ORG_GNOME_METACITY = "org.gnome.metacity";
+-#endif
+-
+ static const gchar * ORG_MATE_MARCO_GENERAL = "org.mate.Marco.general";
+
+ static const gchar * ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS = "use-tooltips";
+@@ -51,12 +45,8 @@
+ static const gchar * ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME = "use-metacity-theme";
+ static const gchar * ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION = "mouse-wheel-action";
+
+-#ifdef HAVE_METACITY_3_20_0
+ static const gchar * ORG_GNOME_METACITY_THEME_NAME = "name";
+ static const gchar * ORG_GNOME_METACITY_THEME_TYPE = "type";
+-#else
+-static const gchar * ORG_GNOME_METACITY_THEME = "theme";
+-#endif
+
+ static const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR = "action-double-click-titlebar";
+ static const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR = "action-middle-click-titlebar";
+@@ -213,7 +203,6 @@
+ if (storage->current_desktop == GWD_DESKTOP_MATE && storage->marco) {
+ metacity_theme_name = g_settings_get_string (storage->marco, ORG_MATE_MARCO_GENERAL_THEME);
+ } else if (storage->current_desktop == GWD_DESKTOP_GNOME_FLASHBACK && storage->metacity) {
+-#ifdef HAVE_METACITY_3_20_0
+ metacity_theme_type = g_settings_get_enum (storage->metacity, ORG_GNOME_METACITY_THEME_TYPE);
+
+ if (metacity_theme_type == META_THEME_TYPE_GTK) {
+@@ -221,9 +210,6 @@
+ } else {
+ metacity_theme_name = g_settings_get_string (storage->metacity, ORG_GNOME_METACITY_THEME_NAME);
+ }
+-#else
+- metacity_theme_name = g_settings_get_string (storage->metacity, ORG_GNOME_METACITY_THEME);
+-#endif
+ } else if (storage->desktop) {
+ metacity_theme_name = g_settings_get_string (storage->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_THEME);
+ } else {
+@@ -385,14 +371,9 @@
+ const gchar *key,
+ GWDSettingsStorage *storage)
+ {
+-#ifdef HAVE_METACITY_3_20_0
+ if (strcmp (key, ORG_GNOME_METACITY_THEME_NAME) == 0 ||
+ strcmp (key, ORG_GNOME_METACITY_THEME_TYPE) == 0)
+ update_metacity_theme (storage);
+-#else
+- if (strcmp (key, ORG_GNOME_METACITY_THEME) == 0)
+- update_metacity_theme (storage);
+-#endif
+ }
+
+ static void
+@@ -423,12 +404,12 @@
+ update_button_layout (storage);
+ }
+
+-#ifdef HAVE_METACITY_3_20_0
+ static void
+ gtk_theme_name_changed (GtkSettings *settings,
+ GParamSpec *pspec,
+ GWDSettingsStorage *storage)
+ {
++#ifdef USE_METACITY
+ MetaThemeType type;
+
+ if (!storage->metacity)
+@@ -438,8 +419,8 @@
+
+ if (type == META_THEME_TYPE_GTK)
+ update_metacity_theme (storage);
+-}
+ #endif
++}
+
+ static void
+ gwd_settings_storage_constructed (GObject *object)
+@@ -573,22 +554,15 @@
+ case GWD_DESKTOP_GNOME_FLASHBACK:
+ storage->gwd = get_settings_no_abort (ORG_COMPIZ_GWD);
+ storage->desktop = get_settings_no_abort (ORG_GNOME_DESKTOP_WM_PREFERENCES);
+-
+-#ifdef HAVE_METACITY_3_20_0
+ storage->metacity = get_settings_no_abort (ORG_GNOME_METACITY_THEME);
+-#else
+- storage->metacity = get_settings_no_abort (ORG_GNOME_METACITY);
+-#endif
+
+ storage->gtk_decoration_layout_id =
+ g_signal_connect (gtk_settings_get_default (), "notify::gtk-decoration-layout",
+ G_CALLBACK (gtk_decoration_layout_changed), storage);
+
+-#ifdef HAVE_METACITY_3_20_0
+ storage->gtk_theme_name_id =
+ g_signal_connect (gtk_settings_get_default (), "notify::gtk-theme-name",
+ G_CALLBACK (gtk_theme_name_changed), storage);
+-#endif
+ break;
+
+ case GWD_DESKTOP_MATE:
+diff -Nur original/gtk/window-decorator/gwd-theme.c modified/gtk/window-decorator/gwd-theme.c
+--- original/gtk/window-decorator/gwd-theme.c 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/gwd-theme.c 2016-10-15 09:32:49.000000000 +0100
+@@ -248,13 +248,6 @@
+ {
+ }
+
+-static PangoFontDescription *
+-gwd_theme_real_get_titlebar_font (GWDTheme *theme,
+- decor_frame_t *frame)
+-{
+- return NULL;
+-}
+-
+ static void
+ gwd_theme_class_init (GWDThemeClass *theme_class)
+ {
+@@ -275,7 +268,6 @@
+ theme_class->get_event_window_position = gwd_theme_real_get_event_window_position;
+ theme_class->get_button_position = gwd_theme_real_get_button_position;
+ theme_class->update_titlebar_font = gwd_theme_real_update_titlebar_font;
+- theme_class->get_titlebar_font = gwd_theme_real_get_titlebar_font;
+
+ properties[PROP_SETTINGS] =
+ g_param_spec_object ("settings", "GWDSettings", "GWDSettings",
+@@ -433,11 +425,6 @@
+ GWDThemePrivate *priv = gwd_theme_get_instance_private (theme);
+ GtkStyleContext *context = gtk_widget_get_style_context (priv->style_window);
+
+- /* Check if Metacity or Cairo will create titlebar font */
+- font_desc = GWD_THEME_GET_CLASS (theme)->get_titlebar_font (theme, frame);
+- if (font_desc)
+- return font_desc;
+-
+ /* Check if non-system font is in use */
+ if (priv->titlebar_font)
+ return pango_font_description_copy (priv->titlebar_font);
+diff -Nur original/gtk/window-decorator/gwd-theme.h modified/gtk/window-decorator/gwd-theme.h
+--- original/gtk/window-decorator/gwd-theme.h 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/gwd-theme.h 2016-10-15 09:32:49.000000000 +0100
+@@ -37,53 +37,50 @@
+ {
+ GObjectClass parent_class;
+
+- void (* style_updated) (GWDTheme *theme);
++ void (* style_updated) (GWDTheme *theme);
+
+- void (* get_shadow) (GWDTheme *theme,
+- decor_frame_t *frame,
+- decor_shadow_options_t *options,
+- gboolean active);
+-
+- void (* draw_window_decoration) (GWDTheme *theme,
+- decor_t *decor);
+-
+- gboolean (* calc_decoration_size) (GWDTheme *theme,
+- decor_t *decor,
+- gint w,
+- gint h,
+- gint name_width,
+- gint *width,
+- gint *height);
+-
+- void (* update_border_extents) (GWDTheme *theme,
+- decor_frame_t *frame);
+-
+- void (* get_event_window_position) (GWDTheme *theme,
+- decor_t *decor,
+- gint i,
+- gint j,
+- gint width,
+- gint height,
+- gint *x,
+- gint *y,
+- gint *w,
+- gint *h);
+-
+- gboolean (* get_button_position) (GWDTheme *theme,
+- decor_t *decor,
+- gint i,
+- gint width,
+- gint height,
+- gint *x,
+- gint *y,
+- gint *w,
+- gint *h);
++ void (* get_shadow) (GWDTheme *theme,
++ decor_frame_t *frame,
++ decor_shadow_options_t *options,
++ gboolean active);
++
++ void (* draw_window_decoration) (GWDTheme *theme,
++ decor_t *decor);
++
++ gboolean (* calc_decoration_size) (GWDTheme *theme,
++ decor_t *decor,
++ gint w,
++ gint h,
++ gint name_width,
++ gint *width,
++ gint *height);
++
++ void (* update_border_extents) (GWDTheme *theme,
++ decor_frame_t *frame);
++
++ void (* get_event_window_position) (GWDTheme *theme,
++ decor_t *decor,
++ gint i,
++ gint j,
++ gint width,
++ gint height,
++ gint *x,
++ gint *y,
++ gint *w,
++ gint *h);
++
++ gboolean (* get_button_position) (GWDTheme *theme,
++ decor_t *decor,
++ gint i,
++ gint width,
++ gint height,
++ gint *x,
++ gint *y,
++ gint *w,
++ gint *h);
+
+- void (* update_titlebar_font) (GWDTheme *theme,
+- const PangoFontDescription *titlebar_font);
+-
+- PangoFontDescription * (* get_titlebar_font) (GWDTheme *theme,
+- decor_frame_t *frame);
++ void (* update_titlebar_font) (GWDTheme *theme,
++ const PangoFontDescription *titlebar_font);
+ };
+
+ typedef enum
+diff -Nur original/gtk/window-decorator/gwd-theme-metacity.c modified/gtk/window-decorator/gwd-theme-metacity.c
+--- original/gtk/window-decorator/gwd-theme-metacity.c 2016-10-15 09:33:19.000000000 +0100
++++ modified/gtk/window-decorator/gwd-theme-metacity.c 2016-10-15 09:32:49.000000000 +0100
+@@ -27,12 +27,7 @@
+
+ #include "config.h"
+
+-#ifdef HAVE_METACITY_3_20_0
+ #include <libmetacity/meta-theme.h>
+-#else
+-#include <metacity-private/theme.h>
+-#include <metacity-private/theme-parser.h>
+-#endif
+
+ #include "gtk-window-decorator.h"
+ #include "gwd-settings.h"
+@@ -40,47 +35,19 @@
+
+ struct _GWDThemeMetacity
+ {
+- GObject parent;
++ GObject parent;
+
+- MetaTheme *theme;
+-
+-#ifndef HAVE_METACITY_3_20_0
+- GHashTable *style_variants;
+-#endif
++ MetaTheme *theme;
+
+- gulong button_layout_id;
+- MetaButtonLayout button_layout;
++ gulong button_layout_id;
+
+-#ifndef HAVE_METACITY_3_20_0
+- const PangoFontDescription *titlebar_font;
++#ifndef HAVE_METACITY_3_22_0
++ MetaButtonLayout button_layout;
+ #endif
+ };
+
+ G_DEFINE_TYPE (GWDThemeMetacity, gwd_theme_metacity, GWD_TYPE_THEME)
+
+-#ifndef HAVE_METACITY_3_20_0
+-static MetaStyleInfo *
+-get_style_info (GWDThemeMetacity *metacity,
+- decor_t *decor)
+-{
+- const gchar *variant = decor != NULL ? decor->gtk_theme_variant : NULL;
+- const gchar *key = variant != NULL ? variant : "default";
+- MetaStyleInfo *style = g_hash_table_lookup (metacity->style_variants, key);
+-
+- if (style == NULL) {
+- GWDTheme *theme = GWD_THEME (metacity);
+- GtkWidget *style_window = gwd_theme_get_style_window (theme);
+- GdkScreen *screen = gtk_widget_get_screen (style_window);
+-
+- style = meta_theme_create_style_info (screen, variant);
+-
+- g_hash_table_insert (metacity->style_variants, g_strdup (key), style);
+- }
+-
+- return style;
+-}
+-#endif
+-
+ static MetaFrameType
+ frame_type_from_string (const gchar *str)
+ {
+@@ -96,234 +63,77 @@
+ return META_FRAME_TYPE_NORMAL;
+ }
+
+-#ifndef HAVE_METACITY_3_20_0
+-static void
+-initialize_button_layout (MetaButtonLayout *layout)
+-{
+- gint i;
+-
+- for (i = 0; i < MAX_BUTTONS_PER_CORNER; ++i) {
+- layout->left_buttons[i] = META_BUTTON_FUNCTION_LAST;
+- layout->right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+- layout->left_buttons_has_spacer[i] = FALSE;
+- layout->right_buttons_has_spacer[i] = FALSE;
+- }
+-}
+-
+-static MetaButtonFunction
+-meta_button_function_from_string (const char *str)
+-{
+- if (strcmp (str, "menu") == 0)
+- return META_BUTTON_FUNCTION_MENU;
+- else if (strcmp (str, "appmenu") == 0)
+- return META_BUTTON_FUNCTION_APPMENU;
+- else if (strcmp (str, "minimize") == 0)
+- return META_BUTTON_FUNCTION_MINIMIZE;
+- else if (strcmp (str, "maximize") == 0)
+- return META_BUTTON_FUNCTION_MAXIMIZE;
+- else if (strcmp (str, "close") == 0)
+- return META_BUTTON_FUNCTION_CLOSE;
+- else if (strcmp (str, "shade") == 0)
+- return META_BUTTON_FUNCTION_SHADE;
+- else if (strcmp (str, "above") == 0)
+- return META_BUTTON_FUNCTION_ABOVE;
+- else if (strcmp (str, "stick") == 0)
+- return META_BUTTON_FUNCTION_STICK;
+- else if (strcmp (str, "unshade") == 0)
+- return META_BUTTON_FUNCTION_UNSHADE;
+- else if (strcmp (str, "unabove") == 0)
+- return META_BUTTON_FUNCTION_UNABOVE;
+- else if (strcmp (str, "unstick") == 0)
+- return META_BUTTON_FUNCTION_UNSTICK;
+- else
+- return META_BUTTON_FUNCTION_LAST;
+-}
+-
+-static MetaButtonFunction
+-meta_button_opposite_function (MetaButtonFunction ofwhat)
+-{
+- switch (ofwhat) {
+- case META_BUTTON_FUNCTION_SHADE:
+- return META_BUTTON_FUNCTION_UNSHADE;
+- case META_BUTTON_FUNCTION_UNSHADE:
+- return META_BUTTON_FUNCTION_SHADE;
+-
+- case META_BUTTON_FUNCTION_ABOVE:
+- return META_BUTTON_FUNCTION_UNABOVE;
+- case META_BUTTON_FUNCTION_UNABOVE:
+- return META_BUTTON_FUNCTION_ABOVE;
+-
+- case META_BUTTON_FUNCTION_STICK:
+- return META_BUTTON_FUNCTION_UNSTICK;
+- case META_BUTTON_FUNCTION_UNSTICK:
+- return META_BUTTON_FUNCTION_STICK;
+-
+- default:
+- return META_BUTTON_FUNCTION_LAST;
+- }
+-}
+-#endif
+-
+ static void
+ update_metacity_button_layout_cb (GWDSettings *settings,
+ const gchar *button_layout,
+ GWDThemeMetacity *metacity)
+ {
+-#ifdef HAVE_METACITY_3_20_0
+ gboolean invert = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL;
+
+- metacity->button_layout = meta_button_layout_new (button_layout, invert);
++#ifdef HAVE_METACITY_3_22_0
++ meta_theme_set_button_layout (metacity->theme, button_layout, invert);
+ #else
+- MetaButtonLayout new_layout;
+-
+- initialize_button_layout (&new_layout);
+-
+- if (button_layout != NULL) {
+- gint i;
+- gchar **sides;
+- MetaButtonFunction f;
+-
+- sides = g_strsplit (button_layout, ":", 2);
+-
+- if (sides[0] != NULL) {
+- gchar **buttons;
+- gint b;
+- gboolean used[META_BUTTON_FUNCTION_LAST];
+-
+- for (i = 0; i < META_BUTTON_FUNCTION_LAST; ++i)
+- used[i] = FALSE;
+-
+- buttons = g_strsplit (sides[0], ",", -1);
+-
+- i = b = 0;
+- while (buttons[b] != NULL) {
+- f = meta_button_function_from_string (buttons[b]);
+-
+- if (i > 0 && strcmp ("spacer", buttons[b]) == 0) {
+- new_layout.left_buttons_has_spacer[i - 1] = TRUE;
+- f = meta_button_opposite_function (f);
+-
+- if (f != META_BUTTON_FUNCTION_LAST)
+- new_layout.left_buttons_has_spacer[i - 2] = TRUE;
+- } else {
+- if (f != META_BUTTON_FUNCTION_LAST && !used[f]) {
+- used[f] = TRUE;
+- new_layout.left_buttons[i++] = f;
+-
+- f = meta_button_opposite_function (f);
+-
+- if (f != META_BUTTON_FUNCTION_LAST)
+- new_layout.left_buttons[i++] = f;
+- } else {
+- g_warning ("Ignoring unknown or already-used "
+- "button name \"%s\"", buttons[b]);
+- }
+- }
+-
+- ++b;
+- }
+-
+- new_layout.left_buttons[i] = META_BUTTON_FUNCTION_LAST;
+-
+- g_strfreev (buttons);
+-
+- if (sides[1] != NULL) {
+- for (i = 0; i < META_BUTTON_FUNCTION_LAST; ++i)
+- used[i] = FALSE;
+-
+- buttons = g_strsplit (sides[1], ",", -1);
+-
+- i = b = 0;
+- while (buttons[b] != NULL) {
+- f = meta_button_function_from_string (buttons[b]);
+-
+- if (i > 0 && strcmp ("spacer", buttons[b]) == 0) {
+- new_layout.right_buttons_has_spacer[i - 1] = TRUE;
+- f = meta_button_opposite_function (f);
+-
+- if (f != META_BUTTON_FUNCTION_LAST)
+- new_layout.right_buttons_has_spacer[i - 2] = TRUE;
+- } else {
+- if (f != META_BUTTON_FUNCTION_LAST && !used[f]) {
+- used[f] = TRUE;
+- new_layout.right_buttons[i++] = f;
+-
+- f = meta_button_opposite_function (f);
+-
+- if (f != META_BUTTON_FUNCTION_LAST)
+- new_layout.right_buttons[i++] = f;
+- } else {
+- g_warning ("Ignoring unknown or already-used "
+- "button name \"%s\"", buttons[b]);
+- }
+- }
+-
+- ++b;
+- }
+-
+- new_layout.right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+-
+- g_strfreev (buttons);
+- }
+- }
+-
+- g_strfreev (sides);
+-
+- /* Invert the button layout for RTL languages */
+- if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL) {
+- MetaButtonLayout rtl_layout;
+- gint j;
+-
+- initialize_button_layout (&rtl_layout);
+-
+- i = 0;
+- while (new_layout.left_buttons[i] != META_BUTTON_FUNCTION_LAST)
+- ++i;
+-
+- for (j = 0; j < i; ++j) {
+- rtl_layout.right_buttons[j] = new_layout.left_buttons[i - j - 1];
+-
+- if (j == 0)
+- rtl_layout.right_buttons_has_spacer[i - 1] = new_layout.left_buttons_has_spacer[i - j - 1];
+- else
+- rtl_layout.right_buttons_has_spacer[j - 1] = new_layout.left_buttons_has_spacer[i - j - 1];
+- }
++ metacity->button_layout = meta_button_layout_new (button_layout, invert);
++#endif
++}
+
+- i = 0;
+- while (new_layout.right_buttons[i] != META_BUTTON_FUNCTION_LAST)
+- ++i;
+-
+- for (j = 0; j < i; ++j) {
+- rtl_layout.left_buttons[j] = new_layout.right_buttons[i - j - 1];
+-
+- if (j == 0)
+- rtl_layout.left_buttons_has_spacer[i - 1] = new_layout.right_buttons_has_spacer[i - j - 1];
+- else
+- rtl_layout.left_buttons_has_spacer[j - 1] = new_layout.right_buttons_has_spacer[i - j - 1];
+- }
++static MetaButtonState
++meta_button_state (gint state)
++{
++ if (state & IN_EVENT_WINDOW) {
++ if (state & PRESSED_EVENT_WINDOW)
++ return META_BUTTON_STATE_PRESSED;
+
+- new_layout = rtl_layout;
+- }
+- } else {
+- gint i;
++ return META_BUTTON_STATE_PRELIGHT;
++ }
+
+- new_layout.left_buttons[0] = META_BUTTON_FUNCTION_MENU;
++ return META_BUTTON_STATE_NORMAL;
++}
+
+- for (i = 1; i < MAX_BUTTONS_PER_CORNER; ++i)
+- new_layout.left_buttons[i] = META_BUTTON_FUNCTION_LAST;
++#ifdef HAVE_METACITY_3_22_0
++static MetaButtonState
++meta_button_state_for_button_type (decor_t *decor,
++ MetaButtonType type)
++{
++ switch (type) {
++ case META_BUTTON_TYPE_CLOSE:
++ return meta_button_state (decor->button_states[BUTTON_CLOSE]);
++ case META_BUTTON_TYPE_MAXIMIZE:
++ return meta_button_state (decor->button_states[BUTTON_MAX]);
++ case META_BUTTON_TYPE_MINIMIZE:
++ return meta_button_state (decor->button_states[BUTTON_MIN]);
++ case META_BUTTON_TYPE_MENU:
++ return meta_button_state (decor->button_states[BUTTON_MENU]);
++ case META_BUTTON_TYPE_SHADE:
++ return meta_button_state (decor->button_states[BUTTON_SHADE]);
++ case META_BUTTON_TYPE_ABOVE:
++ return meta_button_state (decor->button_states[BUTTON_ABOVE]);
++ case META_BUTTON_TYPE_STICK:
++ return meta_button_state (decor->button_states[BUTTON_STICK]);
++ case META_BUTTON_TYPE_UNSHADE:
++ return meta_button_state (decor->button_states[BUTTON_UNSHADE]);
++ case META_BUTTON_TYPE_UNABOVE:
++ return meta_button_state (decor->button_states[BUTTON_UNABOVE]);
++ case META_BUTTON_TYPE_UNSTICK:
++ return meta_button_state (decor->button_states[BUTTON_UNSTICK]);
++ default:
++ break;
++ }
+
+- new_layout.right_buttons[0] = META_BUTTON_FUNCTION_MINIMIZE;
+- new_layout.right_buttons[1] = META_BUTTON_FUNCTION_MAXIMIZE;
+- new_layout.right_buttons[2] = META_BUTTON_FUNCTION_CLOSE;
++ return META_BUTTON_STATE_NORMAL;
++}
+
+- for (i = 3; i < MAX_BUTTONS_PER_CORNER; ++i)
+- new_layout.right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+- }
++static MetaButtonState
++update_button_state (MetaButtonType type,
++ GdkRectangle rect,
++ gpointer user_data)
++{
++ decor_t *decor = (decor_t *) user_data;
+
+- metacity->button_layout = new_layout;
+-#endif
++ return meta_button_state_for_button_type (decor, type);
+ }
+
++#else
+ static MetaButtonType
+ meta_function_to_type (MetaButtonFunction function)
+ {
+@@ -356,19 +166,6 @@
+ }
+
+ static MetaButtonState
+-meta_button_state (gint state)
+-{
+- if (state & IN_EVENT_WINDOW) {
+- if (state & PRESSED_EVENT_WINDOW)
+- return META_BUTTON_STATE_PRESSED;
+-
+- return META_BUTTON_STATE_PRELIGHT;
+- }
+-
+- return META_BUTTON_STATE_NORMAL;
+-}
+-
+-static MetaButtonState
+ meta_button_state_for_button_type (GWDThemeMetacity *metacity,
+ decor_t *decor,
+ MetaButtonType type)
+@@ -422,6 +219,7 @@
+
+ return META_BUTTON_STATE_NORMAL;
+ }
++#endif
+
+ static gint
+ radius_to_width (gint radius,
+@@ -448,8 +246,10 @@
+
+ static Region
+ get_top_border_region (const MetaFrameGeometry *fgeom,
+- gint width)
++ gboolean subtract_borders)
+ {
++ GtkBorder invisible = fgeom->borders.invisible;
++ GtkBorder shadow = fgeom->borders.shadow;
+ Region corners_xregion;
+ Region border_xregion;
+ XRectangle xrect;
+@@ -459,6 +259,7 @@
+ gint bottom_right_radius;
+ gint w;
+ gint i;
++ gint width;
+ gint height;
+
+ corners_xregion = XCreateRegion ();
+@@ -466,10 +267,10 @@
+ get_corner_radius (fgeom, &top_left_radius, &top_right_radius,
+ &bottom_left_radius, &bottom_right_radius);
+
+- width = width - fgeom->borders.invisible.left - fgeom->borders.invisible.right;
+- height = fgeom->borders.visible.top;
++ width = fgeom->width - invisible.left - invisible.right + shadow.left + shadow.right;
++ height = fgeom->borders.visible.top + shadow.top;
+
+- if (top_left_radius) {
++ if (top_left_radius && subtract_borders) {
+ for (i = 0; i < top_left_radius; ++i) {
+ w = radius_to_width (top_left_radius, i);
+
+@@ -482,7 +283,7 @@
+ }
+ }
+
+- if (top_right_radius) {
++ if (top_right_radius && subtract_borders) {
+ for (i = 0; i < top_right_radius; ++i) {
+ w = radius_to_width (top_right_radius, i);
+
+@@ -512,8 +313,10 @@
+
+ static Region
+ get_bottom_border_region (const MetaFrameGeometry *fgeom,
+- gint width)
++ gboolean subtract_borders)
+ {
++ GtkBorder invisible = fgeom->borders.invisible;
++ GtkBorder shadow = fgeom->borders.shadow;
+ Region corners_xregion;
+ Region border_xregion;
+ XRectangle xrect;
+@@ -523,6 +326,7 @@
+ gint bottom_right_radius;
+ gint w;
+ gint i;
++ gint width;
+ gint height;
+
+ corners_xregion = XCreateRegion ();
+@@ -530,10 +334,10 @@
+ get_corner_radius (fgeom, &top_left_radius, &top_right_radius,
+ &bottom_left_radius, &bottom_right_radius);
+
+- width = width - fgeom->borders.invisible.left - fgeom->borders.invisible.right;
+- height = fgeom->borders.visible.bottom;
++ width = fgeom->width - invisible.left - invisible.right + shadow.left + shadow.right;
++ height = fgeom->borders.visible.bottom + shadow.bottom;
+
+- if (bottom_left_radius) {
++ if (bottom_left_radius && subtract_borders) {
+ for (i = 0; i < bottom_left_radius; ++i) {
+ w = radius_to_width (bottom_left_radius, i);
+
+@@ -546,7 +350,7 @@
+ }
+ }
+
+- if (bottom_right_radius) {
++ if (bottom_right_radius && subtract_borders) {
+ for (i = 0; i < bottom_right_radius; ++i) {
+ w = radius_to_width (bottom_right_radius, i);
+
+@@ -575,8 +379,7 @@
+ }
+
+ static Region
+-get_left_border_region (const MetaFrameGeometry *fgeom,
+- gint height)
++get_left_border_region (const MetaFrameGeometry *fgeom)
+ {
+ Region border_xregion;
+ XRectangle xrect;
+@@ -585,8 +388,8 @@
+
+ xrect.x = 0;
+ xrect.y = 0;
+- xrect.width = fgeom->borders.visible.left;
+- xrect.height = height - fgeom->borders.total.top - fgeom->borders.total.bottom;
++ xrect.width = fgeom->borders.visible.left + fgeom->borders.shadow.left;
++ xrect.height = fgeom->height - fgeom->borders.total.top - fgeom->borders.total.bottom;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+@@ -594,8 +397,7 @@
+ }
+
+ static Region
+-get_right_border_region (const MetaFrameGeometry *fgeom,
+- gint height)
++get_right_border_region (const MetaFrameGeometry *fgeom)
+ {
+ Region border_xregion;
+ XRectangle xrect;
+@@ -604,8 +406,8 @@
+
+ xrect.x = 0;
+ xrect.y = 0;
+- xrect.width = fgeom->borders.visible.right;
+- xrect.height = height - fgeom->borders.total.top - fgeom->borders.total.bottom;
++ xrect.width = fgeom->borders.visible.right + fgeom->borders.shadow.right;
++ xrect.height = fgeom->height - fgeom->borders.total.top - fgeom->borders.total.bottom;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+@@ -652,42 +454,22 @@
+ MetaFrameBorders borders;
+
+ tmp_flags = flags & ~META_FRAME_MAXIMIZED;
+-#ifdef HAVE_METACITY_3_20_0
+ meta_theme_get_frame_borders (metacity->theme, d->gtk_theme_variant,
+ type, tmp_flags, &borders);
+-#else
+- meta_theme_get_frame_borders (metacity->theme, get_style_info (metacity, d),
+- type, d->frame->text_height, tmp_flags, &borders);
+-#endif
+-
+- if (flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE) {
+- frame_win_extents.left += borders.invisible.left;
+- frame_win_extents.right += borders.invisible.right;
+- }
+
+- if (flags & META_FRAME_ALLOWS_VERTICAL_RESIZE) {
+- frame_win_extents.bottom += borders.invisible.bottom;
+- frame_win_extents.top += borders.invisible.top;
+- }
++ frame_win_extents.left += borders.resize.left;
++ frame_win_extents.right += borders.resize.right;
++ frame_win_extents.bottom += borders.resize.bottom;
++ frame_win_extents.top += borders.resize.top;
+
+ tmp_flags = flags | META_FRAME_MAXIMIZED;
+-#ifdef HAVE_METACITY_3_20_0
+ meta_theme_get_frame_borders (metacity->theme, d->gtk_theme_variant,
+ type, tmp_flags, &borders);
+-#else
+- meta_theme_get_frame_borders (metacity->theme, get_style_info (metacity, d),
+- type, d->frame->text_height, tmp_flags, &borders);
+-#endif
+-
+- if (flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE) {
+- frame_max_win_extents.left += borders.invisible.left;
+- frame_max_win_extents.right += borders.invisible.right;
+- }
+
+- if (flags & META_FRAME_ALLOWS_VERTICAL_RESIZE) {
+- frame_max_win_extents.bottom += borders.invisible.bottom;
+- frame_max_win_extents.top += borders.invisible.top;
+- }
++ frame_max_win_extents.left += borders.resize.left;
++ frame_max_win_extents.right += borders.resize.right;
++ frame_max_win_extents.bottom += borders.resize.bottom;
++ frame_max_win_extents.top += borders.resize.top;
+ }
+
+ w = d->border_layout.top.x2 - d->border_layout.top.x1 -
+@@ -807,14 +589,14 @@
+ else
+ client_height = decor->border_layout.left.y2 - decor->border_layout.left.y1;
+
+-#ifdef HAVE_METACITY_3_20_0
++#ifdef HAVE_METACITY_3_22_0
+ meta_theme_calc_geometry (metacity->theme, decor->gtk_theme_variant,
+ frame_type, *flags, client_width, client_height,
+- &metacity->button_layout, fgeom);
++ fgeom);
+ #else
+- meta_theme_calc_geometry (metacity->theme, get_style_info (metacity, decor),
+- frame_type, decor->frame->text_height, *flags, client_width,
+- client_height, &metacity->button_layout, fgeom);
++ meta_theme_calc_geometry (metacity->theme, decor->gtk_theme_variant,
++ frame_type, *flags, client_width, client_height,
++ &metacity->button_layout, fgeom);
+ #endif
+ }
+
+@@ -862,6 +644,38 @@
+ decor->button_width = width - min_x;
+ }
+
++#ifdef HAVE_METACITY_3_22_0
++static MetaButtonType
++button_to_meta_button_type (gint i)
++{
++ switch (i) {
++ case BUTTON_MENU:
++ return META_BUTTON_TYPE_MENU;
++ case BUTTON_MIN:
++ return META_BUTTON_TYPE_MINIMIZE;
++ case BUTTON_MAX:
++ return META_BUTTON_TYPE_MAXIMIZE;
++ case BUTTON_CLOSE:
++ return META_BUTTON_TYPE_CLOSE;
++ case BUTTON_SHADE:
++ return META_BUTTON_TYPE_SHADE;
++ case BUTTON_ABOVE:
++ return META_BUTTON_TYPE_ABOVE;
++ case BUTTON_STICK:
++ return META_BUTTON_TYPE_STICK;
++ case BUTTON_UNSHADE:
++ return META_BUTTON_TYPE_UNSHADE;
++ case BUTTON_UNABOVE:
++ return META_BUTTON_TYPE_UNABOVE;
++ case BUTTON_UNSTICK:
++ return META_BUTTON_TYPE_UNSTICK;
++ default:
++ break;
++ }
++
++ return META_BUTTON_TYPE_LAST;
++}
++#else
+ static gboolean
+ button_present (GWDThemeMetacity *metacity,
+ MetaButtonFunction function)
+@@ -909,18 +723,15 @@
+
+ return META_BUTTON_FUNCTION_LAST;
+ }
++#endif
+
+ static gboolean
+ setup_theme (GWDThemeMetacity *metacity)
+ {
+ GWDSettings *settings = gwd_theme_get_settings (GWD_THEME (metacity));
+ const gchar *metacity_theme_name = gwd_settings_get_metacity_theme_name (settings);
+-#ifdef HAVE_METACITY_3_20_0
+ gint metacity_theme_type = gwd_settings_get_metacity_theme_type (settings);
+ GError *error = NULL;
+-#else
+- MetaTheme *theme;
+-#endif
+
+ /* metacity_theme can be NULL only in one case - if user has disabled
+ * metacity theme with use-metacity-theme setting. In that case
+@@ -928,7 +739,6 @@
+ */
+ g_assert (metacity_theme_name != NULL);
+
+-#ifdef HAVE_METACITY_3_20_0
+ if (metacity_theme_type == -1)
+ metacity_theme_type = META_THEME_TYPE_METACITY;
+
+@@ -943,25 +753,6 @@
+
+ return FALSE;
+ }
+-#else
+-
+- /* meta_theme_get_current returns the last good theme, so we will try to
+- * load theme manually to know that theme is 100% valid.
+- */
+- theme = meta_theme_load (metacity_theme_name, NULL);
+- if (theme == NULL)
+- return FALSE;
+-
+- /* We can not use this manually loaded theme because Metacity internaly
+- * also use meta_theme_get_current wich in this case will return NULL,
+- * boom - segfault...
+- */
+- meta_theme_free (theme);
+-
+- /* If we are here then we know that this will not fail. */
+- meta_theme_set_current (metacity_theme_name, TRUE);
+- metacity->theme = meta_theme_get_current ();
+-#endif
+
+ return TRUE;
+ }
+@@ -997,11 +788,7 @@
+ {
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (object);
+
+-#ifdef HAVE_METACITY_3_20_0
+ g_clear_object (&metacity->theme);
+-#else
+- g_clear_pointer (&metacity->style_variants, g_hash_table_destroy);
+-#endif
+
+ if (metacity->button_layout_id != 0) {
+ GWDSettings *settings = gwd_theme_get_settings (GWD_THEME (metacity));
+@@ -1010,10 +797,6 @@
+ metacity->button_layout_id = 0;
+ }
+
+-#ifndef HAVE_METACITY_3_20_0
+- metacity->titlebar_font = NULL;
+-#endif
+-
+ G_OBJECT_CLASS (gwd_theme_metacity_parent_class)->dispose (object);
+ }
+
+@@ -1022,11 +805,7 @@
+ {
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+
+-#ifdef HAVE_METACITY_3_20_0
+ meta_theme_invalidate (metacity->theme);
+-#else
+- g_hash_table_remove_all (metacity->style_variants);
+-#endif
+ }
+
+ static void
+@@ -1034,32 +813,28 @@
+ decor_t *decor)
+ {
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+- GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
++ GWDSettings *settings = gwd_theme_get_settings (theme);
+ GdkDisplay *display = gdk_display_get_default ();
+ Display *xdisplay = gdk_x11_display_get_xdisplay (display);
+ GtkWidget *style_window = gwd_theme_get_style_window (theme);
+-#ifndef HAVE_METACITY_3_20_0
+- MetaStyleInfo *style_info = get_style_info (metacity, decor);
+- GtkStyleContext *context = gtk_widget_get_style_context (style_window);
+-#endif
+ cairo_surface_t *surface;
+ Picture src;
++#ifndef HAVE_METACITY_3_22_0
+ MetaButtonState button_states [META_BUTTON_TYPE_LAST];
++#endif
+ MetaFrameGeometry fgeom;
+ MetaFrameFlags flags;
+ MetaFrameType frame_type;
+ cairo_t *cr;
++#ifndef HAVE_METACITY_3_22_0
+ gint i;
++#endif
+ Region top_region;
+ Region bottom_region;
+ Region left_region;
+ Region right_region;
+ double alpha;
+ gboolean shade_alpha;
+-#ifndef HAVE_METACITY_3_20_0
+- MetaFrameStyle *frame_style;
+- GdkRGBA bg_rgba;
+-#endif
+
+ if (!decor->surface || !decor->picture)
+ return;
+@@ -1088,24 +863,14 @@
+
+ get_decoration_geometry (metacity, decor, &flags, &fgeom, frame_type);
+
+- if (decor->prop_xid || !decor->buffer_surface)
++ if (!decor->frame->has_shadow_extents &&
++ (decor->prop_xid || !decor->buffer_surface)) {
+ draw_shadow_background (decor, cr, decor->shadow, decor->context);
++ }
+
++#ifndef HAVE_METACITY_3_22_0
+ for (i = 0; i < META_BUTTON_TYPE_LAST; ++i)
+ button_states[i] = meta_button_state_for_button_type (metacity, decor, i);
+-
+-#ifndef HAVE_METACITY_3_20_0
+- frame_style = meta_theme_get_frame_style (metacity->theme, frame_type, flags);
+-
+- gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg_rgba);
+- bg_rgba.alpha = 1.0;
+-
+- if (frame_style->window_background_color) {
+- meta_color_spec_render (frame_style->window_background_color,
+- context, &bg_rgba);
+-
+- bg_rgba.alpha = frame_style->window_background_alpha / 255.0;
+- }
+ #endif
+
+ /* Draw something that will be almost invisible to user. This is hacky way
+@@ -1118,67 +883,59 @@
+ cairo_destroy (cr);
+
+ surface = create_surface (fgeom.width, fgeom.height, style_window);
+-
+ cr = cairo_create (surface);
+
+-#ifndef HAVE_METACITY_3_20_0
+- gdk_cairo_set_source_rgba (cr, &bg_rgba);
+- cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+- cairo_paint (cr);
+-#endif
+-
+ src = XRenderCreatePicture (xdisplay, cairo_xlib_surface_get_drawable (surface),
+ xformat_rgba, 0, NULL);
+
+-#ifdef HAVE_METACITY_3_20_0
++#ifdef HAVE_METACITY_3_22_0
+ meta_theme_draw_frame (metacity->theme, decor->gtk_theme_variant, cr, frame_type, flags,
+ fgeom.width - fgeom.borders.total.left - fgeom.borders.total.right,
+ fgeom.height - fgeom.borders.total.top - fgeom.borders.total.bottom,
+- decor->name, &metacity->button_layout,
+- button_states, decor->icon_pixbuf, NULL);
++ decor->name, update_button_state, decor, decor->icon_pixbuf, NULL);
+ #else
+- meta_theme_draw_frame (metacity->theme, style_info, cr, frame_type, flags,
++ meta_theme_draw_frame (metacity->theme, decor->gtk_theme_variant, cr, frame_type, flags,
+ fgeom.width - fgeom.borders.total.left - fgeom.borders.total.right,
+ fgeom.height - fgeom.borders.total.top - fgeom.borders.total.bottom,
+- decor->layout, decor->frame->text_height, &metacity->button_layout,
++ decor->name, &metacity->button_layout,
+ button_states, decor->icon_pixbuf, NULL);
+ #endif
+
+- if (fgeom.borders.visible.top) {
+- top_region = get_top_border_region (&fgeom, fgeom.width);
++ if (fgeom.borders.visible.top + fgeom.borders.shadow.top) {
++ top_region = get_top_border_region (&fgeom, !decor->frame->has_shadow_extents);
+
+ decor_blend_border_picture (xdisplay, decor->context, src,
+- fgeom.borders.invisible.left,
+- fgeom.borders.invisible.top,
++ fgeom.borders.invisible.left - fgeom.borders.shadow.left,
++ fgeom.borders.invisible.top - fgeom.borders.shadow.top,
+ decor->picture, &decor->border_layout,
+ BORDER_TOP, top_region,
+ alpha * 0xffff, shade_alpha, 0);
+ }
+
+- if (fgeom.borders.visible.bottom) {
+- bottom_region = get_bottom_border_region (&fgeom, fgeom.width);
++ if (fgeom.borders.visible.bottom + fgeom.borders.shadow.bottom) {
++ bottom_region = get_bottom_border_region (&fgeom, !decor->frame->has_shadow_extents);
+
+ decor_blend_border_picture (xdisplay, decor->context, src,
+- fgeom.borders.invisible.left,
++ fgeom.borders.invisible.left - fgeom.borders.shadow.left,
+ fgeom.height - fgeom.borders.total.bottom,
+ decor->picture, &decor->border_layout,
+ BORDER_BOTTOM, bottom_region,
+ alpha * 0xffff, shade_alpha, 0);
+ }
+
+- if (fgeom.borders.visible.left) {
+- left_region = get_left_border_region (&fgeom, fgeom.height);
++ if (fgeom.borders.visible.left + fgeom.borders.shadow.left) {
++ left_region = get_left_border_region (&fgeom);
+
+ decor_blend_border_picture (xdisplay, decor->context, src,
+- fgeom.borders.invisible.left,
++ fgeom.borders.invisible.left - fgeom.borders.shadow.left,
+ fgeom.borders.total.top,
+ decor->picture, &decor->border_layout,
+ BORDER_LEFT, left_region,
+ alpha * 0xffff, shade_alpha, 0);
+ }
+
+- if (fgeom.borders.visible.right) {
+- right_region = get_right_border_region (&fgeom, fgeom.height);
++ if (fgeom.borders.visible.right + fgeom.borders.shadow.right) {
++ right_region = get_right_border_region (&fgeom);
+
+ decor_blend_border_picture (xdisplay, decor->context, src,
+ fgeom.width - fgeom.borders.total.right,
+@@ -1278,40 +1035,39 @@
+ decor_frame_t *frame)
+ {
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+-#ifndef HAVE_METACITY_3_20_0
+- MetaStyleInfo *style_info = get_style_info (metacity, NULL);
+-#endif
++ GWDSettings *settings = gwd_theme_get_settings (theme);
++ gint theme_type = gwd_settings_get_metacity_theme_type (settings);
+ MetaFrameType frame_type = frame_type_from_string (frame->type);
+ MetaFrameBorders borders;
+
+ gwd_decor_frame_ref (frame);
+
+-#ifdef HAVE_METACITY_3_20_0
++ /* Shadow extents is used only with GTK+ theme */
++ frame->has_shadow_extents = theme_type == META_THEME_TYPE_GTK;
++
+ meta_theme_get_frame_borders (metacity->theme, NULL, frame_type,
+ 0, &borders);
+-#else
+- meta_theme_get_frame_borders (metacity->theme, style_info, frame_type,
+- frame->text_height, 0, &borders);
+-#endif
+
+ frame->win_extents.top = borders.visible.top;
+ frame->win_extents.bottom = borders.visible.bottom;
+ frame->win_extents.left = borders.visible.left;
+ frame->win_extents.right = borders.visible.right;
++ frame->shadow_extents.top = borders.shadow.top;
++ frame->shadow_extents.bottom = borders.shadow.bottom;
++ frame->shadow_extents.left = borders.shadow.left;
++ frame->shadow_extents.right = borders.shadow.right;
+
+-#ifdef HAVE_METACITY_3_20_0
+ meta_theme_get_frame_borders (metacity->theme, NULL, frame_type,
+ META_FRAME_MAXIMIZED, &borders);
+-#else
+- meta_theme_get_frame_borders (metacity->theme, style_info, frame_type,
+- frame->text_height, META_FRAME_MAXIMIZED,
+- &borders);
+-#endif
+
+ frame->max_win_extents.top = borders.visible.top;
+ frame->max_win_extents.bottom = borders.visible.bottom;
+ frame->max_win_extents.left = borders.visible.left;
+ frame->max_win_extents.right = borders.visible.right;
++ frame->max_shadow_extents.top = borders.shadow.top;
++ frame->max_shadow_extents.bottom = borders.shadow.bottom;
++ frame->max_shadow_extents.left = borders.shadow.left;
++ frame->max_shadow_extents.right = borders.shadow.right;
+
+ gwd_decor_frame_unref (frame);
+ }
+@@ -1331,12 +1087,30 @@
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+ MetaFrameGeometry fgeom;
+ MetaFrameFlags flags;
++ GtkBorder visible;
++ GtkBorder resize;
++ GtkBorder total;
++ gint top_border;
+
+ get_decoration_geometry (metacity, decor, &flags, &fgeom,
+ frame_type_from_string (decor->frame->type));
+
+- width += fgeom.borders.total.right + fgeom.borders.total.left;
+- height += fgeom.borders.total.top + fgeom.borders.total.bottom;
++ visible = fgeom.borders.visible;
++ resize = fgeom.borders.resize;
++
++ /* We can not use `fgeom->borders.total` border here - it includes also
++ * `shadow` border, but it is not included in frame extents! Create new
++ * `total` border that includes only `visible` border and `resize` border.
++ */
++ total.left = visible.left + resize.left;
++ total.right = visible.right + resize.right;
++ total.top = visible.top + resize.top;
++ total.bottom = visible.bottom + resize.bottom;
++
++ width += total.left + total.right;
++ height += total.top + total.bottom;
++
++ top_border = fgeom.title_rect.y - fgeom.borders.invisible.top;
+
+ #define TOP_RESIZE_HEIGHT 2
+ #define RESIZE_EXTENDS 15
+@@ -1345,51 +1119,51 @@
+ case 2: /* bottom */
+ switch (j) {
+ case 2: /* bottom right */
+- *x = width - fgeom.borders.total.right - RESIZE_EXTENDS;
+- *y = height - fgeom.borders.total.bottom - RESIZE_EXTENDS;
++ *x = width - total.right - RESIZE_EXTENDS;
++ *y = height - total.bottom - RESIZE_EXTENDS;
+
+- *w = fgeom.borders.total.right + RESIZE_EXTENDS;
+- *h = fgeom.borders.total.bottom + RESIZE_EXTENDS;
++ *w = total.right + RESIZE_EXTENDS;
++ *h = total.bottom + RESIZE_EXTENDS;
+ break;
+ case 1: /* bottom */
+- *x = fgeom.borders.total.left + RESIZE_EXTENDS;
+- *y = height - fgeom.borders.total.bottom;
++ *x = total.left + RESIZE_EXTENDS;
++ *y = height - total.bottom;
+
+- *w = width - fgeom.borders.total.left - fgeom.borders.total.right - (2 * RESIZE_EXTENDS);
+- *h = fgeom.borders.total.bottom;
++ *w = width - total.left - total.right - (2 * RESIZE_EXTENDS);
++ *h = total.bottom;
+ break;
+ case 0: /* bottom left */
+ default:
+ *x = 0;
+- *y = height - fgeom.borders.total.bottom - RESIZE_EXTENDS;
++ *y = height - total.bottom - RESIZE_EXTENDS;
+
+- *w = fgeom.borders.total.left + RESIZE_EXTENDS;
+- *h = fgeom.borders.total.bottom + RESIZE_EXTENDS;
++ *w = total.left + RESIZE_EXTENDS;
++ *h = total.bottom + RESIZE_EXTENDS;
+ break;
+ }
+ break;
+ case 1: /* middle */
+ switch (j) {
+ case 2: /* right */
+- *x = width - fgeom.borders.total.right;
+- *y = fgeom.borders.total.top + RESIZE_EXTENDS;
++ *x = width - total.right;
++ *y = resize.top + top_border + RESIZE_EXTENDS;
+
+- *w = fgeom.borders.total.right;
+- *h = height - fgeom.borders.total.top - fgeom.borders.total.bottom - (2 * RESIZE_EXTENDS);
++ *w = total.right;
++ *h = height - resize.top - top_border - total.bottom - (2 * RESIZE_EXTENDS);
+ break;
+ case 1: /* middle */
+- *x = fgeom.borders.total.left;
+- *y = fgeom.title_rect.y + TOP_RESIZE_HEIGHT;
+- *w = width - fgeom.borders.total.left - fgeom.borders.total.right;
+- *h = height - fgeom.borders.total.top - fgeom.borders.total.bottom;
++ *x = total.left;
++ *y = resize.top + top_border + TOP_RESIZE_HEIGHT;
++ *w = width - total.left - total.right;
++ *h = visible.top - top_border - TOP_RESIZE_HEIGHT;
+ break;
+ case 0: /* left */
+ default:
+ *x = 0;
+- *y = fgeom.borders.total.top + RESIZE_EXTENDS;
++ *y = resize.top + top_border + RESIZE_EXTENDS;
+
+- *w = fgeom.borders.total.left;
+- *h = height - fgeom.borders.total.top - fgeom.borders.total.bottom - (2 * RESIZE_EXTENDS);
++ *w = total.left;
++ *h = height - resize.top - top_border - total.bottom - (2 * RESIZE_EXTENDS);
+ break;
+ }
+ break;
+@@ -1397,26 +1171,26 @@
+ default:
+ switch (j) {
+ case 2: /* top right */
+- *x = width - fgeom.borders.total.right - RESIZE_EXTENDS;
++ *x = width - total.right - RESIZE_EXTENDS;
+ *y = 0;
+
+- *w = fgeom.borders.total.right + RESIZE_EXTENDS;
+- *h = fgeom.borders.total.top + RESIZE_EXTENDS;
++ *w = total.right + RESIZE_EXTENDS;
++ *h = resize.top + top_border + RESIZE_EXTENDS;
+ break;
+ case 1: /* top */
+- *x = fgeom.borders.total.left + RESIZE_EXTENDS;
++ *x = total.left + RESIZE_EXTENDS;
+ *y = 0;
+
+- *w = width - fgeom.borders.total.left - fgeom.borders.total.right - (2 * RESIZE_EXTENDS);
+- *h = fgeom.borders.total.top - fgeom.title_rect.height;
++ *w = width - total.left - total.right - (2 * RESIZE_EXTENDS);
++ *h = resize.top + top_border + TOP_RESIZE_HEIGHT;
+ break;
+ case 0: /* top left */
+ default:
+ *x = 0;
+ *y = 0;
+
+- *w = fgeom.borders.total.left + RESIZE_EXTENDS;
+- *h = fgeom.borders.total.top + RESIZE_EXTENDS;
++ *w = total.left + RESIZE_EXTENDS;
++ *h = resize.top + top_border + RESIZE_EXTENDS;
+ break;
+ }
+ break;
+@@ -1453,8 +1227,14 @@
+ MetaFrameGeometry fgeom;
+ MetaFrameType frame_type;
+ MetaFrameFlags flags;
++#ifdef HAVE_METACITY_3_22_0
++ MetaButtonType button_type;
++ MetaButton **buttons;
++ gint index;
++#else
+ MetaButtonFunction button_function;
+ MetaButtonSpace *space;
++#endif
+
+ if (!decor->context) {
+ /* undecorated windows implicitly have no buttons */
+@@ -1465,6 +1245,34 @@
+
+ get_decoration_geometry (metacity, decor, &flags, &fgeom, frame_type);
+
++#ifdef HAVE_METACITY_3_22_0
++ button_type = button_to_meta_button_type (i);
++ buttons = meta_theme_get_buttons (metacity->theme);
++
++ for (index = 0; buttons[index]; index++) {
++ if (meta_button_get_type (buttons[index]) == button_type) {
++ GdkRectangle rect;
++
++ meta_button_get_event_rect (buttons[index], &rect);
++
++ if (rect.width != 0 && rect.height != 0) {
++ *x = rect.x;
++ *y = rect.y;
++ *w = rect.width;
++ *h = rect.height;
++
++ *x = *x - fgeom.borders.invisible.left + fgeom.borders.resize.left;
++ *y = *y - fgeom.borders.invisible.top + fgeom.borders.resize.top;
++
++ g_free (buttons);
++ return TRUE;
++ }
++ }
++ }
++
++ g_free (buttons);
++ return FALSE;
++#else
+ button_function = button_to_meta_button_function (i);
+ if (!button_present (metacity, button_function))
+ return FALSE;
+@@ -1512,7 +1320,11 @@
+ *w = space->clickable.width;
+ *h = space->clickable.height;
+
++ *x = *x - fgeom.borders.invisible.left + fgeom.borders.resize.left;
++ *y = *y - fgeom.borders.invisible.top + fgeom.borders.resize.top;
++
+ return TRUE;
++#endif
+ }
+
+ static void
+@@ -1521,32 +1333,7 @@
+ {
+ GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+
+-#ifdef HAVE_METACITY_3_20_0
+ meta_theme_set_titlebar_font (metacity->theme, titlebar_font);
+-#else
+- metacity->titlebar_font = titlebar_font;
+-#endif
+-}
+-
+-static PangoFontDescription *
+-gwd_theme_metacity_get_titlebar_font (GWDTheme *theme,
+- decor_frame_t *frame)
+-{
+-#ifdef HAVE_METACITY_3_20_0
+- return NULL;
+-#else
+- GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme);
+- MetaStyleInfo *style_info = get_style_info (metacity, NULL);
+- PangoFontDescription *font_desc = meta_style_info_create_font_desc (style_info);
+- MetaFrameType type = frame_type_from_string (frame->type);
+- MetaFrameFlags flags = 0xc33; /* FIXME */
+- MetaFrameStyle *style = meta_theme_get_frame_style (metacity->theme, type, flags);
+-
+- pango_font_description_merge (font_desc, metacity->titlebar_font, TRUE);
+- meta_frame_style_apply_scale (style, font_desc);
+-
+- return font_desc;
+-#endif
+ }
+
+ static void
+@@ -1565,16 +1352,11 @@
+ theme_class->get_event_window_position = gwd_theme_metacity_get_event_window_position;
+ theme_class->get_button_position = gwd_theme_metacity_get_button_position;
+ theme_class->update_titlebar_font = gwd_theme_metacity_update_titlebar_font;
+- theme_class->get_titlebar_font = gwd_theme_metacity_get_titlebar_font;
+ }
+
+ static void
+ gwd_theme_metacity_init (GWDThemeMetacity *metacity)
+ {
+-#ifndef HAVE_METACITY_3_20_0
+- metacity->style_variants = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+- (GDestroyNotify) meta_style_info_unref);
+-#endif
+ }
+
+ /**
diff --git a/reverse-unity-config.patch b/reverse-unity-config.patch
new file mode 100644
index 000000000000..c8eb9b646425
--- /dev/null
+++ b/reverse-unity-config.patch
@@ -0,0 +1,869 @@
+diff -Nur original/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml modified/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml
+--- original/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2016-07-01 12:39:57.000000000 +0100
++++ modified/compizconfig/integration/gnome/gsettings/org.compiz.integrated.gschema.xml 2016-10-15 09:18:20.339453526 +0100
+@@ -10,9 +10,6 @@
+ <key type="s" name="command-screenshot">
+ <default>"gnome-screenshot"</default>
+ </key>
+- <key type="as" name="run-command-21">
+- <default>["&lt;Control&gt;&lt;Alt&gt;Delete"]</default>
+- </key>
+ <key type="as" name="run-command-12">
+ <default>["Disabled"]</default>
+ </key>
+@@ -49,9 +46,6 @@
+ <key type="as" name="run-command-1">
+ <default>["Disabled"]</default>
+ </key>
+- <key type="s" name="command-21">
+- <default>"/usr/bin/gnome-system-monitor -p"</default>
+- </key>
+ <key type="s" name="command-12">
+ <default>""</default>
+ </key>
+diff -Nur original/metadata/core.xml.in modified/metadata/core.xml.in
+--- original/metadata/core.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/metadata/core.xml.in 2016-10-15 09:18:20.339453526 +0100
+@@ -144,7 +144,7 @@
+ <option name="focus_prevention_match" type="match">
+ <_short>Focus Prevention Windows</_short>
+ <_long>Focus prevention windows</_long>
+- <default>!(class=Polkit-gnome-authentication-agent-1)</default>
++ <default>any</default>
+ </option>
+ </group>
+ <group>
+@@ -179,7 +179,7 @@
+ <option name="minimize_window_key" type="key">
+ <_short>Minimize Window</_short>
+ <_long>Minimize active window</_long>
+- <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
++ <default>&lt;Alt&gt;F9</default>
+ </option>
+ <option name="minimize_window_button" type="button">
+ <_short>Minimize Window</_short>
+@@ -188,16 +188,16 @@
+ <option name="maximize_window_key" type="key">
+ <_short>Maximize Window</_short>
+ <_long>Maximize active window</_long>
+- <default>&lt;Control&gt;&lt;Super&gt;Up</default>
++ <default>&lt;Alt&gt;F10</default>
+ </option>
+ <option name="unmaximize_window_key" type="key">
+ <_short>Unmaximize Window</_short>
+ <_long>Unmaximize active window</_long>
++ <default>&lt;Alt&gt;F5</default>
+ </option>
+ <option name="unmaximize_or_minimize_window_key" type="key">
+ <_short>Unmaximize or Minimize Window</_short>
+ <_long>Unmaximize or minimize active window</_long>
+- <default>&lt;Control&gt;&lt;Super&gt;Down</default>
+ </option>
+ <option name="maximize_window_horizontally_key" type="key">
+ <_short>Maximize Window Horizontally</_short>
+@@ -220,6 +220,7 @@
+ <option name="show_desktop_key" type="key">
+ <_short>Show Desktop</_short>
+ <_long>Hide all windows and focus desktop</_long>
++ <default>&lt;Control&gt;&lt;Alt&gt;d</default>
+ </option>
+ <option name="show_desktop_edge" type="edge">
+ <_short>Show Desktop</_short>
+@@ -229,7 +230,6 @@
+ <option name="toggle_window_maximized_key" type="key">
+ <_short>Toggle Window Maximized</_short>
+ <_long>Toggle active window maximized</_long>
+- <default>&lt;Control&gt;&lt;Alt&gt;KP_5</default>
+ </option>
+ <option name="toggle_window_maximized_button" type="button">
+ <_short>Toggle Window Maximized</_short>
+@@ -254,7 +254,7 @@
+ <option name="hsize" type="int">
+ <_short>Horizontal Virtual Size</_short>
+ <_long>Screen size multiplier for horizontal virtual size</_long>
+- <default>1</default>
++ <default>4</default>
+ <min>1</min>
+ <max>32</max>
+ </option>
+diff -Nur original/plugins/animation/animation.xml.in modified/plugins/animation/animation.xml.in
+--- original/plugins/animation/animation.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/animation/animation.xml.in 2016-10-15 09:18:20.339453526 +0100
+@@ -36,7 +36,7 @@
+ <extensible/>
+ <sort start="2"/>
+ <default>
+- <value>animation:Glide 2</value>
++ <value>animation:Zoom</value>
+ <value>animation:Fade</value>
+ <value>animation:Fade</value>
+ </default>
+@@ -48,9 +48,9 @@
+ <min>50</min>
+ <max>4000</max>
+ <default>
+- <value>120</value>
+- <value>80</value>
+- <value>80</value>
++ <value>200</value>
++ <value>150</value>
++ <value>150</value>
+ </default>
+ </option>
+ <option name="open_matches" type="list">
+@@ -58,8 +58,8 @@
+ <_long>The windows that will be animated.</_long>
+ <type>match</type>
+ <default>
+- <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver)</value>
+- <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
++ <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
++ <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
+ <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
+ </default>
+ </option>
+@@ -102,7 +102,7 @@
+ <extensible/>
+ <sort start="2"/>
+ <default>
+- <value>animation:Glide 2</value>
++ <value>animation:Zoom</value>
+ <value>animation:Fade</value>
+ <value>animation:Fade</value>
+ </default>
+@@ -114,9 +114,9 @@
+ <min>50</min>
+ <max>4000</max>
+ <default>
+- <value>120</value>
+- <value>80</value>
+- <value>50</value>
++ <value>200</value>
++ <value>150</value>
++ <value>150</value>
+ </default>
+ </option>
+ <option name="close_matches" type="list">
+@@ -124,8 +124,8 @@
+ <_long>The windows that will be animated.</_long>
+ <type>match</type>
+ <default>
+- <value>((type=Normal | Unknown) | name=sun-awt-X11-XFramePeer | name=sun-awt-X11-XDialogPeer) &amp; !(role=toolTipTip | role=qtooltip_label) &amp; !(type=Normal &amp; override_redirect=1) &amp; !(name=gnome-screensaver) &amp; !(name=gnome-screenshot)</value>
+- <value>((type=Menu | PopupMenu | DropdownMenu | Combo | Dialog | ModalDialog | Normal) &amp; !(class=\\.exe$))</value>
++ <value>(type=Normal | Dialog | ModalDialog | Unknown) &amp; !(name=gnome-screensaver)</value>
++ <value>(type=Menu | PopupMenu | DropdownMenu | Combo)</value>
+ <value>(type=Tooltip | Notification | Utility) &amp; !(name=compiz) &amp; !(title=notify-osd)</value>
+ </default>
+ </option>
+@@ -168,7 +168,7 @@
+ <extensible/>
+ <sort start="2"/>
+ <default>
+- <value>animation:Zoom</value>
++ <value>animation:Magic Lamp</value>
+ </default>
+ </option>
+ <option name="minimize_durations" type="list">
+@@ -178,7 +178,7 @@
+ <min>50</min>
+ <max>4000</max>
+ <default>
+- <value>220</value>
++ <value>300</value>
+ </default>
+ </option>
+ <option name="minimize_matches" type="list">
+@@ -341,7 +341,7 @@
+ <extensible/>
+ <sort start="1"/>
+ <default>
+- <value>animation:Fade</value>
++ <value>animation:None</value>
+ </default>
+ </option>
+ <option name="focus_durations" type="list">
+@@ -351,7 +351,7 @@
+ <min>50</min>
+ <max>4000</max>
+ <default>
+- <value>150</value>
++ <value>300</value>
+ </default>
+ </option>
+ <option name="focus_matches" type="list">
+@@ -385,7 +385,7 @@
+ <option name="time_step" type="int">
+ <_short>Animation Time Step</_short>
+ <_long>The amount of time in milliseconds between each render of the animation. The higher the number, the jerkier the movements become.</_long>
+- <default>16</default>
++ <default>10</default>
+ <min>1</min>
+ <max>400</max>
+ </option>
+@@ -473,7 +473,7 @@
+ <option name="glide2_away_position" type="float">
+ <_short>Away Position</_short>
+ <_long>Closeness of window to camera at the end of the animation (1.0: Close to camera, -2.0: Away from camera).</_long>
+- <default>-0.1</default>
++ <default>-0.4</default>
+ <min>-2</min>
+ <max>1</max>
+ <precision>0.05</precision>
+@@ -481,7 +481,7 @@
+ <option name="glide2_away_angle" type="float">
+ <_short>Away Angle</_short>
+ <_long>Angle of window at the end of the animation.</_long>
+- <default>0</default>
++ <default>-45</default>
+ <min>-540</min>
+ <max>540</max>
+ <precision>5</precision>
+@@ -686,7 +686,7 @@
+ <option name="zoom_springiness" type="float">
+ <_short>Springiness</_short>
+ <_long>How spring-like the Zoom animation should be.</_long>
+- <default>0.08</default>
++ <default>0.0</default>
+ <min>0</min>
+ <max>1</max>
+ <precision>0.01</precision>
+diff -Nur original/plugins/commands/commands.xml.in modified/plugins/commands/commands.xml.in
+--- original/plugins/commands/commands.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/commands/commands.xml.in 2016-10-15 09:18:20.339453526 +0100
+@@ -117,7 +117,7 @@
+ <option name="command20" type="string">
+ <_short>Command line 20</_short>
+ <_long>Command line to be executed in shell when run_command20 is invoked</_long>
+- <default>/usr/bin/gnome-system-monitor -p</default>
++ <default></default>
+ </option>
+ </group>
+ <group>
+@@ -205,7 +205,6 @@
+ <option name="run_command20_key" type="key">
+ <_short>Run command 20</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command20</_long>
+- <default>&lt;Control&gt;&lt;Alt&gt;Delete</default>
+ </option>
+ </group>
+ <group>
+diff -Nur original/plugins/decor/decor.xml.in modified/plugins/decor/decor.xml.in
+--- original/plugins/decor/decor.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/decor/decor.xml.in 2016-10-15 09:18:20.339453526 +0100
+@@ -31,7 +31,7 @@
+ <option name="active_shadow_opacity" type="float">
+ <_short>Shadow Opacity</_short>
+ <_long>Drop shadow opacity</_long>
+- <default>0.8</default>
++ <default>0.5</default>
+ <min>0.01</min>
+ <max>6.0</max>
+ <precision>0.01</precision>
+@@ -66,7 +66,7 @@
+ <option name="inactive_shadow_radius" type="float">
+ <_short>Shadow Radius</_short>
+ <_long>Drop shadow radius</_long>
+- <default>5.0</default>
++ <default>8.0</default>
+ <min>0.1</min>
+ <max>13.0</max>
+ <precision>0.1</precision>
+@@ -74,7 +74,7 @@
+ <option name="inactive_shadow_opacity" type="float">
+ <_short>Shadow Opacity</_short>
+ <_long>Drop shadow opacity</_long>
+- <default>0.4</default>
++ <default>0.5</default>
+ <min>0.01</min>
+ <max>6.0</max>
+ <precision>0.01</precision>
+@@ -101,7 +101,7 @@
+ <option name="command" type="string">
+ <_short>Command</_short>
+ <_long>Decorator command line that is executed if no decorator is already running.</_long>
+- <default>/usr/bin/gtk-window-decorator</default>
++ <default>exec \"${COMPIZ_BIN_PATH}compiz-decorator\"</default>
+ </option>
+ <option name="mipmap" type="bool">
+ <_short>Mipmap</_short>
+diff -Nur original/plugins/expo/expo.xml.in modified/plugins/expo/expo.xml.in
+--- original/plugins/expo/expo.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/expo/expo.xml.in 2016-10-15 09:18:20.339453526 +0100
+@@ -17,7 +17,6 @@
+ <plugin>wobbly</plugin>
+ <plugin>animation</plugin>
+ <plugin>wallpaper</plugin>
+- <plugin>imgpng</plugin>
+ </relation>
+ </deps>
+ <options>
+@@ -26,7 +25,7 @@
+ <option name="expo_key" type="key">
+ <_short>Expo Key</_short>
+ <_long>Initiate or terminate Expo mode with this keyboard shortcut.</_long>
+- <default>&lt;Super&gt;s</default>
++ <default>&lt;Super&gt;e</default>
+ </option>
+ <option name="expo_button" type="button">
+ <_short>Expo Button</_short>
+@@ -37,6 +36,7 @@
+ <_short>Expo Corner/Edge</_short>
+ <_long>Initiate or terminate Expo mode by moving the pointer to this corner or edge of your screen(s).</_long>
+ <default>
++ <edge name="TopLeft"/>
+ </default>
+ </option>
+ <option name="double_click_time" type="int">
+@@ -80,7 +80,7 @@
+ <option name="zoom_time" type="float">
+ <_short>Animation Duration</_short>
+ <_long>Duration of the selected animation (in seconds).</_long>
+- <default>0.3</default>
++ <default>0.5</default>
+ <min>0.1</min>
+ <max>5.0</max>
+ <precision>0.1</precision>
+@@ -142,12 +142,12 @@
+ <option name="x_offset" type="int">
+ <_short>X Offset</_short>
+ <_long>Horizontal offset (in pixels).</_long>
+- <default>64</default>
++ <default>0</default>
+ </option>
+ <option name="y_offset" type="int">
+ <_short>Y Offset</_short>
+ <_long>Vertical offset (in pixels).</_long>
+- <default>24</default>
++ <default>0</default>
+ </option>
+ <option name="y_bottom_offset" type="int">
+ <_short>Y Bottom Offset</_short>
+@@ -166,7 +166,7 @@
+ <option name="vp_distance" type="float">
+ <_short>Viewport Distance</_short>
+ <_long>The distance between viewports in Expo mode.</_long>
+- <default>0.2</default>
++ <default>0.10</default>
+ <min>0.0</min>
+ <max>1.0</max>
+ <precision>0.01</precision>
+@@ -194,7 +194,7 @@
+ <_long>How the Expo wall should be displayed, if multiple output devices are used.</_long>
+ <min>0</min>
+ <max>1</max>
+- <default>1</default>
++ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>One big wall</_name>
+@@ -209,7 +209,7 @@
+ <option name="vp_brightness" type="float">
+ <_short>Brightness</_short>
+ <_long>The brightness of unfocused viewports (in percent).</_long>
+- <default>40.0</default>
++ <default>75.0</default>
+ <min>0.0</min>
+ <max>100.0</max>
+ <precision>0.1</precision>
+@@ -229,7 +229,7 @@
+ <red>0xfbfb</red>
+ <green>0x8b8b</green>
+ <blue>0x0</blue>
+- <alpha>0xffff</alpha>
++ <alpha>0x0</alpha>
+ </default>
+ </option>
+ </subgroup>
+@@ -238,7 +238,7 @@
+ <option name="reflection" type="bool">
+ <_short>Reflection</_short>
+ <_long>Render a realtime reflection of the viewports on the ground.</_long>
+- <default>false</default>
++ <default>true</default>
+ </option>
+ <option name="ground_color1" type="color">
+ <_short>Ground Color (near)</_short>
+diff -Nur original/plugins/ezoom/ezoom.xml.in modified/plugins/ezoom/ezoom.xml.in
+--- original/plugins/ezoom/ezoom.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/ezoom/ezoom.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -30,7 +30,7 @@
+ <option type="button" name="zoom_in_button">
+ <_short>Zoom In Button</_short>
+ <_long>Mouse button shortcut to invoke zooming in.</_long>
+- <default></default>
++ <default>&lt;Super&gt;Button4</default>
+ </option>
+ <option type="key" name="zoom_in_key">
+ <_short>Zoom In Key</_short>
+@@ -39,7 +39,7 @@
+ <option type="button" name="zoom_out_button">
+ <_short>Zoom Out Button</_short>
+ <_long>Mouse button shortcut to invoke zooming out.</_long>
+- <default></default>
++ <default>&lt;Super&gt;Button5</default>
+ </option>
+ <option type="key" name="zoom_out_key">
+ <_short>Zoom Out Key</_short>
+@@ -48,7 +48,7 @@
+ <option type="button" name="zoom_box_button">
+ <_short>Invoke Zoom Box Button</_short>
+ <_long>Define a rectangle area and zoom into it.</_long>
+- <default></default>
++ <default>&lt;Super&gt;Button2</default>
+ </option>
+ <option name="zoom_box_outline_color" type="color">
+ <_short>Zoom Box Outline Color</_short>
+@@ -162,7 +162,7 @@
+ <option type="key" name="fit_to_window_key">
+ <_short>Fit zoomed area to window</_short>
+ <_long>Zooms in/out so the focused window is zoomed to the maximum while still being fully visible.</_long>
+- <default></default>
++ <default>&lt;Super&gt;r</default>
+ </option>
+ </subgroup>
+ </group>
+diff -Nur original/plugins/fade/fade.xml.in modified/plugins/fade/fade.xml.in
+--- original/plugins/fade/fade.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/fade/fade.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -10,7 +10,6 @@
+ </requirement>
+ <relation type="after">
+ <plugin>decor</plugin>
+- <plugin>staticswitcher</plugin>
+ </relation>
+ <relation type="before">
+ <plugin>cube</plugin>
+@@ -51,7 +50,7 @@
+ <option name="window_match" type="match">
+ <_short>Fade windows</_short>
+ <_long>Windows that should be fading</_long>
+- <default>any &amp; !(title=notify-osd)</default>
++ <default>any</default>
+ </option>
+ <option name="visual_bell" type="bell">
+ <_short>Visual Bell</_short>
+diff -Nur original/plugins/gnomecompat/gnomecompat.xml.in modified/plugins/gnomecompat/gnomecompat.xml.in
+--- original/plugins/gnomecompat/gnomecompat.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/gnomecompat/gnomecompat.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -54,7 +54,6 @@
+ <option name="run_command_terminal_key" type="key">
+ <_short>Open a terminal</_short>
+ <_long>Open a terminal</_long>
+- <default>&lt;Control&gt;&lt;Alt&gt;T</default>
+ </option>
+ </group>
+ </options>
+diff -Nur original/plugins/grid/grid.xml.in modified/plugins/grid/grid.xml.in
+--- original/plugins/grid/grid.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/grid/grid.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -68,12 +68,12 @@
+ <option name="put_maximize_key" type="key">
+ <_short>Maximize Key</_short>
+ <_long>Maximize window.</_long>
+- <default>&lt;Control&gt;&lt;Super&gt;Up</default>
++ <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
+ </option>
+ <option name="put_restore_key" type="key">
+ <_short>Restore</_short>
+ <_long>Restore window to it's original size. Note: Use the same shortcut you are using to unmaximize a window to be able to restore grid-maximized windows.</_long>
+- <default>&lt;Control&gt;&lt;Super&gt;Down</default>
++ <default>&lt;Alt&gt;F5</default>
+ </option>
+ <option name="left_maximize" type="key">
+ <_short>Left Maximize</_short>
+diff -Nur original/plugins/resize/resize.xml.in modified/plugins/resize/resize.xml.in
+--- original/plugins/resize/resize.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/resize/resize.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -56,15 +56,15 @@
+ <option name="maximize_vertically" type="bool">
+ <short>Maximize Vertically if screen edge hit</short>
+ <long>Maximizes the window vertically if the top or bottom screen edge is hit while resizing</long>
+- <default>true</default>
++ <default>false</default>
+ </option>
+ <option name="border_color" type="color">
+ <_short>Border Color</_short>
+ <_long>Border color used for outline and rectangle resize modes</_long>
+ <default>
+- <red>0xfbfb</red>
+- <green>0x8b8b</green>
+- <blue>0x0</blue>
++ <red>0x2f2f</red>
++ <green>0x2f2f</green>
++ <blue>0x4f4f</blue>
+ <alpha>0x9f9f</alpha>
+ </default>
+ </option>
+@@ -72,10 +72,10 @@
+ <_short>Fill Color</_short>
+ <_long>Fill color used for rectangle resize mode</_long>
+ <default>
+- <red>0xfbfb</red>
+- <green>0x8b8b</green>
+- <blue>0x0</blue>
+- <alpha>0x1919</alpha>
++ <red>0x2f2f</red>
++ <green>0x2f2f</green>
++ <blue>0x4f4f</blue>
++ <alpha>0x4f4f</alpha>
+ </default>
+ </option>
+ <subgroup>
+diff -Nur original/plugins/scale/scale.xml.in modified/plugins/scale/scale.xml.in
+--- original/plugins/scale/scale.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/scale/scale.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -21,7 +21,7 @@
+ <option name="spacing" type="int">
+ <_short>Spacing</_short>
+ <_long>Space between windows</_long>
+- <default>20</default>
++ <default>10</default>
+ <min>0</min>
+ <max>250</max>
+ </option>
+@@ -46,7 +46,7 @@
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Scale speed</_long>
+- <default>5.0</default>
++ <default>1.5</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+@@ -54,7 +54,7 @@
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Scale timestep</_long>
+- <default>0.1</default>
++ <default>1.2</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+@@ -67,7 +67,7 @@
+ <option name="opacity" type="int">
+ <_short>Opacity</_short>
+ <_long>Amount of opacity in percent</_long>
+- <default>100</default>
++ <default>75</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+@@ -76,7 +76,7 @@
+ <_long>Overlay an icon on windows once they are scaled</_long>
+ <min>0</min>
+ <max>2</max>
+- <default>0</default>
++ <default>1</default>
+ <desc>
+ <value>0</value>
+ <_name>None</_name>
+@@ -129,7 +129,7 @@
+ <_long>Selects where windows are scaled if multiple output devices are used.</_long>
+ <min>0</min>
+ <max>1</max>
+- <default>1</default>
++ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>On current output device</_name>
+@@ -145,7 +145,7 @@
+ <option name="key_bindings_toggle" type="bool">
+ <_short>Key Bindings Toggle Scale Mode</_short>
+ <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+- <default>true</default>
++ <default>false</default>
+ </option>
+ <option name="button_bindings_toggle" type="bool">
+ <_short>Button Bindings Toggle Scale Mode</_short>
+@@ -155,12 +155,15 @@
+ <option name="initiate_edge" type="edge">
+ <_short>Initiate Window Picker</_short>
+ <_long>Layout and start transforming windows</_long>
++ <default>
++ <edge name="TopRight"/>
++ </default>
+ <allowed edgednd="true"/>
+ </option>
+ <option name="initiate_key" type="key">
+ <_short>Initiate Window Picker</_short>
+ <_long>Layout and start transforming windows</_long>
+- <default>&lt;Super&gt;w</default>
++ <default>&lt;Shift&gt;&lt;Alt&gt;Up</default>
+ </option>
+ <option name="initiate_button" type="button">
+ <_short>Initiate Window Picker</_short>
+@@ -178,7 +181,6 @@
+ <option name="initiate_all_key" type="key">
+ <_short>Initiate Window Picker For All Windows</_short>
+ <_long>Layout and start transforming all windows</_long>
+- <default>&lt;Super&gt;&lt;Shift&gt;w</default>
+ </option>
+ <option name="initiate_group_edge" type="edge">
+ <_short>Initiate Window Picker For Window Group</_short>
+diff -Nur original/plugins/staticswitcher/staticswitcher.xml.in modified/plugins/staticswitcher/staticswitcher.xml.in
+--- original/plugins/staticswitcher/staticswitcher.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/staticswitcher/staticswitcher.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -11,6 +11,7 @@
+ <relation type="after">
+ <plugin>composite</plugin>
+ <plugin>opengl</plugin>
++ <plugin>fade</plugin>
+ <plugin>compiztoolbox</plugin>
+ <plugin>decor</plugin>
+ </relation>
+@@ -139,12 +140,12 @@
+ <option name="auto_change_vp" type="bool">
+ <_short>Auto Change Viewport</_short>
+ <_long>Change to the viewport of the selected window while switching</_long>
+- <default>true</default>
++ <default>false</default>
+ </option>
+ <option name="popup_delay" type="float">
+ <_short>Popup Window Delay</_short>
+ <_long>Time (in s) the popup window should be delayed before appearing</_long>
+- <default>0.2</default>
++ <default>0.0</default>
+ <min>0.0</min>
+ <max>2.0</max>
+ <precision>0.05</precision>
+@@ -152,7 +153,7 @@
+ <option name="mouse_select" type="bool">
+ <_short>Allow Mouse Selection</_short>
+ <_long>Allow selection of windows from the switcher window with the mouse</_long>
+- <default>true</default>
++ <default>false</default>
+ </option>
+ </group>
+ <group>
+@@ -160,14 +161,14 @@
+ <option name="saturation" type="int">
+ <_short>Saturation</_short>
+ <_long>Amount of saturation in percent</_long>
+- <default>100</default>
++ <default>50</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="brightness" type="int">
+ <_short>Brightness</_short>
+ <_long>Amount of brightness in percent</_long>
+- <default>100</default>
++ <default>50</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+@@ -191,7 +192,7 @@
+ <option name="mipmap" type="bool">
+ <_short>Mipmap</_short>
+ <_long>Generate mipmaps when possible for higher quality scaling</_long>
+- <default>false</default>
++ <default>true</default>
+ </option>
+ <option name="row_align" type="int">
+ <_short>Row Alignment</_short>
+@@ -220,7 +221,7 @@
+ <option name="bring_to_front" type="bool">
+ <_short>Bring To Front</_short>
+ <_long>Bring selected window to front</_long>
+- <default>false</default>
++ <default>true</default>
+ </option>
+ <_short>Selected Window Highlight</_short>
+ <option name="highlight_mode" type="int">
+@@ -228,7 +229,7 @@
+ <_long>Mode for highlighting the currently selected window</_long>
+ <min>0</min>
+ <max>2</max>
+- <default>0</default>
++ <default>1</default>
+ <desc>
+ <value>0</value>
+ <_name>None</_name>
+diff -Nur original/plugins/vpswitch/vpswitch.xml.in modified/plugins/vpswitch/vpswitch.xml.in
+--- original/plugins/vpswitch/vpswitch.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/vpswitch/vpswitch.xml.in 2016-10-15 09:18:20.342786836 +0100
+@@ -95,11 +95,13 @@
+ <option name="next_button" type="button">
+ <_short>Move Next</_short>
+ <_long>Move to the next viewport</_long>
++ <default>Button5</default>
+ <internal/>
+ </option>
+ <option name="prev_button" type="button">
+ <_short>Move Prev</_short>
+ <_long>Move to the previous viewport</_long>
++ <default>Button4</default>
+ <internal/>
+ </option>
+ <option name="initiate_button" type="button">
+diff -Nur original/plugins/wall/wall.xml.in modified/plugins/wall/wall.xml.in
+--- original/plugins/wall/wall.xml.in 2016-07-01 12:39:57.000000000 +0100
++++ modified/plugins/wall/wall.xml.in 2016-10-15 09:18:20.346120144 +0100
+@@ -30,12 +30,12 @@
+ <option name="miniscreen" type="bool">
+ <_short>Show Live Viewport Previews</_short>
+ <_long>Show live viewport previews in switcher window</_long>
+- <default>true</default>
++ <default>false</default>
+ </option>
+ <option name="preview_timeout" type="float">
+ <_short>Switch Target Preview Visibility Time</_short>
+ <_long>Duration (in s) the switch target preview should remain visible after switching ends.</_long>
+- <default>0.2</default>
++ <default>0.4</default>
+ <min>0.0</min>
+ <max>2.0</max>
+ <precision>0.05</precision>
+@@ -43,7 +43,7 @@
+ <option name="preview_scale" type="int">
+ <_short>Preview Scale</_short>
+ <_long>Size of the preview in %</_long>
+- <default>130</default>
++ <default>100</default>
+ <min>0</min>
+ <max>400</max>
+ </option>
+@@ -57,7 +57,7 @@
+ <option name="border_width" type="int">
+ <_short>Border Width</_short>
+ <_long>Width of the border between the previews</_long>
+- <default>7</default>
++ <default>10</default>
+ <min>0</min>
+ <max>30</max>
+ </option>
+@@ -65,10 +65,10 @@
+ <_short>Outline Color</_short>
+ <_long>Outline color of the switcher window.</_long>
+ <default>
+- <red>0xffff</red>
+- <green>0xffff</green>
+- <blue>0xffff</blue>
+- <alpha>0x3232</alpha>
++ <red>0x3333</red>
++ <green>0x3333</green>
++ <blue>0x3333</blue>
++ <alpha>0xd998</alpha>
+ </default>
+ </option>
+ <subgroup>
+@@ -78,30 +78,30 @@
+ <_short>Base Color</_short>
+ <_long>First color for the background gradient of the switcher window.</_long>
+ <default>
+- <red>0x0000</red>
+- <green>0x0000</green>
+- <blue>0x0000</blue>
+- <alpha>0x6464</alpha>
++ <red>0xcccc</red>
++ <green>0xcccc</green>
++ <blue>0xe665</blue>
++ <alpha>0xd998</alpha>
+ </default>
+ </option>
+ <option name="background_gradient_highlight_color" type="color">
+ <_short>Highlight Color</_short>
+ <_long>Second color for the background gradient of the switcher window.</_long>
+ <default>
+- <red>0x0000</red>
+- <green>0x0000</green>
+- <blue>0x0000</blue>
+- <alpha>0x6464</alpha>
++ <red>0xf332</red>
++ <green>0xf332</green>
++ <blue>0xffff</blue>
++ <alpha>0xd998</alpha>
+ </default>
+ </option>
+ <option name="background_gradient_shadow_color" type="color">
+ <_short>Shadow Color</_short>
+ <_long>Third color for the background gradient of the switcher window.</_long>
+ <default>
+- <red>0x0000</red>
+- <green>0x0000</green>
+- <blue>0x0000</blue>
+- <alpha>0x6464</alpha>
++ <red>0xf332</red>
++ <green>0xf332</green>
++ <blue>0xffff</blue>
++ <alpha>0xd998</alpha>
+ </default>
+ </option>
+ </subgroup>
+@@ -112,20 +112,20 @@
+ <_short>Base Color</_short>
+ <_long>First color for the thumb gradient of the switcher window.</_long>
+ <default>
+- <red>0x5555</red>
+- <green>0x5555</green>
+- <blue>0x5555</blue>
+- <alpha>0x3232</alpha>
++ <red>0x3333</red>
++ <green>0x3333</green>
++ <blue>0x3333</blue>
++ <alpha>0x5999</alpha>
+ </default>
+ </option>
+ <option name="thumb_gradient_highlight_color" type="color">
+ <_short>Highlight Color</_short>
+ <_long>Second color for the thumb gradient of the switcher window.</_long>
+ <default>
+- <red>0x5555</red>
+- <green>0x5555</green>
+- <blue>0x5555</blue>
+- <alpha>0x3232</alpha>
++ <red>0x3fff</red>
++ <green>0x3fff</green>
++ <blue>0x3fff</blue>
++ <alpha>0x3fff</alpha>
+ </default>
+ </option>
+ </subgroup>
+@@ -139,7 +139,7 @@
+ <red>0xffff</red>
+ <green>0xffff</green>
+ <blue>0xffff</blue>
+- <alpha>0xffff</alpha>
++ <alpha>0xf332</alpha>
+ </default>
+ </option>
+ <option name="thumb_highlight_gradient_shadow_color" type="color">
+@@ -149,7 +149,7 @@
+ <red>0xdfff</red>
+ <green>0xdfff</green>
+ <blue>0xdfff</blue>
+- <alpha>0xffff</alpha>
++ <alpha>0xa665</alpha>
+ </default>
+ </option>
+ </subgroup>
+@@ -201,7 +201,7 @@
+ <option name="auto_switch_vp_and_window" type="bool">
+ <_short>Auto Switch Vp And Window</_short>
+ <_long>Auto switch the viewport and move window when Alt-Tab to window that is more than half contained in another viewport</_long>
+- <default>false</default>
++ <default>true</default>
+ </option>
+ </group>
+ <group>
+@@ -356,7 +356,7 @@
+ <option name="edgeflip_move" type="bool">
+ <_short>Edge Flip Move</_short>
+ <_long>Flip viewport when moving a window to a screen edge</_long>
+- <default>false</default>
++ <default>true</default>
+ </option>
+ <option name="edgeflip_dnd" type="bool">
+ <_short>Edge Flip DnD</_short>
+diff -Nur original/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp modified/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp
+--- original/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2016-07-01 12:39:57.000000000 +0100
++++ modified/tests/system/xorg-gtest/tests/compiz_xorg_gtest_ewmh.cpp 2016-10-15 09:18:20.346120144 +0100
+@@ -46,7 +46,7 @@
+
+ namespace
+ {
+-unsigned int DEFAULT_VIEWPORT_WIDTH = 1;
++unsigned int DEFAULT_VIEWPORT_WIDTH = 4;
+ unsigned int DEFAULT_VIEWPORT_HEIGHT = 1;
+
+ bool Advance (Display *d, bool r)