summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Bos2016-04-09 12:33:41 +0100
committerCharles Bos2016-04-09 12:33:41 +0100
commit342c4f1aadad88d1cf78e344ffec7fda8e1705ae (patch)
treeb5bd0594f8a89ee82a952de2a4a360fcade07aca
parent904a834229fbbf80e93021c945603fc68fb64d35 (diff)
downloadaur-342c4f1aadad88d1cf78e344ffec7fda8e1705ae.tar.gz
add upstream changes for using marco's theme settings - thanks to korrode for this one
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD11
-rw-r--r--marco-in-mate.patch1209
3 files changed, 1222 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d911a9ff4c36..bad317e31f5e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,9 @@
+# Generated by mksrcinfo v8
+# Sat Apr 9 11:13:22 UTC 2016
pkgbase = compiz
pkgdesc = Composite manager for Aiglx and Xgl, with plugins and CCSM
pkgver = 0.9.12.2
- pkgrel = 10
+ pkgrel = 11
url = https://launchpad.net/compiz
install = compiz.install
arch = i686
@@ -41,6 +43,7 @@ pkgbase = compiz
source = switcher-background.patch
source = cmake3.patch
source = cube-texture.patch
+ source = marco-in-mate.patch
sha256sums = 8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80
sha256sums = f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b
sha256sums = 16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9
@@ -49,6 +52,7 @@ pkgbase = compiz
sha256sums = e3125ed3a7e87a7d4bdaa23f1b6f654a02d0b050ad7a694ce9165fff2c6ff310
sha256sums = e5016fd62f9c9659d887eeafd556c18350615cd6d185c8ffa08825465890c5e0
sha256sums = 81780f8c56f5b27b09394ae9ed59d10ae50c58f9ade445e9f85d7c2a00445f7e
+ sha256sums = 0d7474aee60c1a482cf26d5d0be6ec2e1b1067fa1d601fdf4aa19a71b07e41d3
pkgname = compiz
diff --git a/PKGBUILD b/PKGBUILD
index 8abf52c49b73..f7eef497abbf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@
pkgname=compiz
pkgver=0.9.12.2
_pkgseries=0.9.12
-pkgrel=10
+pkgrel=11
pkgdesc="Composite manager for Aiglx and Xgl, with plugins and CCSM"
arch=('i686' 'x86_64')
url="https://launchpad.net/compiz"
@@ -25,7 +25,8 @@ source=("https://launchpad.net/${pkgname}/${_pkgseries}/${pkgver}/+download/${pk
"c++11.patch"
"switcher-background.patch"
"cmake3.patch"
- "cube-texture.patch")
+ "cube-texture.patch"
+ "marco-in-mate.patch")
sha256sums=('8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80'
'f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b'
'16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9'
@@ -33,7 +34,8 @@ sha256sums=('8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80'
'eb8b432050d1eed9cb1d5f33d2645f81e2bdce2bf55d5cc779986bb751373a45'
'e3125ed3a7e87a7d4bdaa23f1b6f654a02d0b050ad7a694ce9165fff2c6ff310'
'e5016fd62f9c9659d887eeafd556c18350615cd6d185c8ffa08825465890c5e0'
- '81780f8c56f5b27b09394ae9ed59d10ae50c58f9ade445e9f85d7c2a00445f7e')
+ '81780f8c56f5b27b09394ae9ed59d10ae50c58f9ade445e9f85d7c2a00445f7e'
+ '0d7474aee60c1a482cf26d5d0be6ec2e1b1067fa1d601fdf4aa19a71b07e41d3')
install=${pkgname}.install
prepare() {
@@ -66,6 +68,9 @@ prepare() {
# Fix off-center cube cap pictures
patch -Np1 -i "${srcdir}/cube-texture.patch"
+
+ # Use the Marco gsettings in MATE session (commits 3997+4002)
+ patch -p1 -i "${srcdir}/marco-in-mate.patch"
}
build() {
diff --git a/marco-in-mate.patch b/marco-in-mate.patch
new file mode 100644
index 000000000000..ec74b9db20c5
--- /dev/null
+++ b/marco-in-mate.patch
@@ -0,0 +1,1209 @@
+diff -Naur a/gtk/window-decorator/gwd-settings-interface.c b/gtk/window-decorator/gwd-settings-interface.c
+--- a/gtk/window-decorator/gwd-settings-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-interface.c 2016-04-09 19:33:04.180359747 +1000
+@@ -33,7 +33,6 @@
+ const gint INACTIVE_SHADOW_OFFSET_Y_DEFAULT = 1;
+ const gchar *INACTIVE_SHADOW_COLOR_DEFAULT = "#00000000";
+
+-const guint DRAGGABLE_BORDER_WIDTH_DEFAULT = 7;
+ const gint BLUR_TYPE_DEFAULT = BLUR_TYPE_NONE;
+
+ const gchar *METACITY_THEME_DEFAULT = "Adwaita";
+@@ -74,14 +73,6 @@
+ USE_TOOLTIPS_DEFAULT,
+ G_PARAM_READABLE));
+ g_object_interface_install_property (settings_interface,
+- g_param_spec_int ("draggable-border-width",
+- "Draggable Border Width",
+- "Draggable Border Width Setting",
+- 0,
+- 64,
+- DRAGGABLE_BORDER_WIDTH_DEFAULT,
+- G_PARAM_READABLE));
+- g_object_interface_install_property (settings_interface,
+ g_param_spec_int ("blur",
+ "Blur Type",
+ "Blur type property",
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-gsettings.c b/gtk/window-decorator/gwd-settings-storage-gsettings.c
+--- a/gtk/window-decorator/gwd-settings-storage-gsettings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-gsettings.c 2016-04-09 19:33:06.810364208 +1000
+@@ -18,6 +18,7 @@
+ * Authored By: Sam Spilsbury <sam.spilsbury@canonical.com>
+ */
+ #include <glib-object.h>
++#include <glib.h>
+
+ #include <gio/gio.h>
+
+@@ -29,8 +30,8 @@
+
+ const gchar * ORG_COMPIZ_GWD = "org.compiz.gwd";
+ const gchar * ORG_GNOME_METACITY = "org.gnome.metacity";
+-const gchar * ORG_GNOME_MUTTER = "org.gnome.mutter";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES = "org.gnome.desktop.wm.preferences";
++const gchar * ORG_MATE_MARCO_GENERAL = "org.mate.Marco.general";
+
+ const gchar * ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS = "use-tooltips";
+ const gchar * ORG_COMPIZ_GWD_KEY_BLUR_TYPE = "blur-type";
+@@ -41,7 +42,6 @@
+ const gchar * ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME = "use-metacity-theme";
+ const gchar * ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION = "mouse-wheel-action";
+ const gchar * ORG_GNOME_METACITY_THEME = "theme";
+-const gchar * ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH = "draggable-border-width";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR = "action-double-click-titlebar";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR = "action-middle-click-titlebar";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR = "action-right-click-titlebar";
+@@ -49,6 +49,13 @@
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT = "titlebar-uses-system-font";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT = "titlebar-font";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT = "button-layout";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR = "action-double-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR = "action-middle-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR = "action-right-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_THEME = "theme";
++const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT = "titlebar-uses-system-font";
++const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT = "titlebar-font";
++const gchar * ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT = "button-layout";
+
+ #define GWD_SETTINGS_STORAGE_GSETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GWD_TYPE_SETTINGS_STORAGE_GSETTINGS, GWDSettingsStorageGSettings));
+ #define GWD_SETTINGS_STORAGE_GSETTINGS_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GWD_TYPE_SETTINGS_STORAGE_GSETTINGS, GWDSettingsStorageGSettingsClass));
+@@ -78,7 +85,7 @@
+ {
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_DESKTOP_GSETTINGS = 1,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_METACITY_GSETTINGS = 2,
+- GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MUTTER_GSETTINGS = 3,
++ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MARCO_GSETTINGS = 3,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_GWD_GSETTINGS = 4,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_WRITABLE_SETTINGS = 5
+ };
+@@ -87,7 +94,10 @@
+ {
+ GSettings *desktop;
+ GSettings *metacity;
+- GSettings *mutter;
++
++ GSettings *marco;
++ gboolean is_mate_desktop;
++
+ GSettings *gwd;
+ GWDSettingsWritable *writable;
+ } GWDSettingsStorageGSettingsPrivate;
+@@ -107,20 +117,6 @@
+ }
+
+ static gboolean
+-gwd_settings_storage_gsettings_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+- GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
+-
+- if (!priv->mutter)
+- return FALSE;
+-
+- return gwd_settings_writable_draggable_border_width_changed (priv->writable,
+- g_settings_get_int (priv->mutter,
+- ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH));
+-}
+-
+-static gboolean
+ gwd_settings_storage_gsettings_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+@@ -150,10 +146,12 @@
+
+ use_metacity_theme = g_settings_get_boolean (priv->gwd, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME);
+
+- if (!priv->metacity)
+- return FALSE;
+-
++ if (priv->is_mate_desktop)
++ theme = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_THEME);
++ else if (priv->metacity)
+ theme = g_settings_get_string (priv->metacity, ORG_GNOME_METACITY_THEME);
++ else
++ return FALSE;
+
+ return gwd_settings_writable_metacity_theme_changed (priv->writable,
+ use_metacity_theme,
+@@ -185,13 +183,17 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
++ gchar *button_layout;
+
+- if (!priv->desktop)
++ if (priv->is_mate_desktop)
++ button_layout = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT);
++ else if (priv->desktop)
++ button_layout = g_settings_get_string (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT);
++ else
+ return FALSE;
+
+ return gwd_settings_writable_button_layout_changed (priv->writable,
+- g_settings_get_string (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT));
++ button_layout);
+ }
+
+ static gboolean
+@@ -199,15 +201,21 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
++ gchar *titlebar_font;
++ gboolean titlebar_system_font;
+
+- if (!priv->desktop)
++ if (priv->is_mate_desktop) {
++ titlebar_font = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT);
++ titlebar_system_font = g_settings_get_boolean (priv->marco, ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT);
++ } else if (priv->desktop) {
++ titlebar_font = g_settings_get_string (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT);
++ titlebar_system_font = g_settings_get_boolean (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT);
++ } else
+ return FALSE;
+
+ return gwd_settings_writable_font_changed (priv->writable,
+- g_settings_get_boolean (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT),
+- g_settings_get_string (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT));
++ titlebar_system_font,
++ titlebar_font);
+ }
+
+ static inline gchar *
+@@ -233,19 +241,27 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
+-
+- if (!priv->desktop)
+- return FALSE;
++ gchar *double_click_action, *middle_click_action, *right_click_action;
+
+ if (!priv->gwd)
+ return FALSE;
+
+- gchar *double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ if (priv->is_mate_desktop) {
++ double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR));
++ middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR));
++ right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR));
++ } else if (priv->desktop) {
++ double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR));
+- gchar *middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR));
+- gchar *right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR));
++ } else
++ return FALSE;
+
+ return gwd_settings_writable_titlebar_actions_changed (priv->writable,
+ double_click_action,
+@@ -268,7 +284,6 @@
+ gwd_settings_storage_gsettings_interface_init (GWDSettingsStorageInterface *interface)
+ {
+ interface->update_use_tooltips = gwd_settings_storage_gsettings_update_use_tooltips;
+- interface->update_draggable_border_width = gwd_settings_storage_gsettings_update_draggable_border_width;
+ interface->update_blur = gwd_settings_storage_gsettings_update_blur;
+ interface->update_metacity_theme = gwd_settings_storage_gsettings_update_metacity_theme;
+ interface->update_opacity = gwd_settings_storage_gsettings_update_opacity;
+@@ -299,11 +314,11 @@
+
+ priv->metacity = g_value_dup_object (value);
+ break;
+- case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MUTTER_GSETTINGS:
+- if (priv->mutter)
+- g_object_unref (priv->mutter);
++ case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MARCO_GSETTINGS:
++ if (priv->marco)
++ g_object_unref (priv->marco);
+
+- priv->mutter = g_value_dup_object (value);
++ priv->marco = g_value_dup_object (value);
+ break;
+ case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_GWD_GSETTINGS:
+ if (priv->gwd)
+@@ -332,8 +347,8 @@
+ if (priv->metacity)
+ g_object_unref (priv->metacity);
+
+- if (priv->mutter)
+- g_object_unref (priv->mutter);
++ if (priv->marco)
++ g_object_unref (priv->marco);
+
+ if (priv->gwd)
+ g_object_unref (priv->gwd);
+@@ -362,9 +377,9 @@
+ "GSettings Object for org.gnome.metacity",
+ G_TYPE_SETTINGS,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY),
+- g_param_spec_object ("mutter-gsettings",
+- ORG_GNOME_MUTTER,
+- "GSettings Object for org.gnome.mutter",
++ g_param_spec_object ("marco-gsettings",
++ ORG_MATE_MARCO_GENERAL,
++ "GSettings Object for org.mate.Marco.general",
+ G_TYPE_SETTINGS,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY),
+ g_param_spec_object ("gwd-gsettings",
+@@ -396,7 +411,7 @@
+ GWDSettingsStorage *
+ gwd_settings_storage_gsettings_new (GSettings *desktop,
+ GSettings *metacity,
+- GSettings *mutter,
++ GSettings *marco,
+ GSettings *gwd,
+ GWDSettingsWritable *writable)
+ {
+@@ -405,23 +420,24 @@
+
+ GValue desktop_value = G_VALUE_INIT;
+ GValue metacity_value = G_VALUE_INIT;
+- GValue mutter_value = G_VALUE_INIT;
++ GValue marco_value = G_VALUE_INIT;
+ GValue gwd_value = G_VALUE_INIT;
+ GValue writable_value = G_VALUE_INIT;
+
+ GWDSettingsStorage *storage = NULL;
++ GWDSettingsStorageGSettingsPrivate *priv;
+
+ g_return_val_if_fail (writable != NULL, NULL);
+
+ g_value_init (&desktop_value, G_TYPE_OBJECT);
+ g_value_init (&metacity_value, G_TYPE_OBJECT);
+- g_value_init (&mutter_value, G_TYPE_OBJECT);
++ g_value_init (&marco_value, G_TYPE_OBJECT);
+ g_value_init (&gwd_value, G_TYPE_OBJECT);
+ g_value_init (&writable_value, G_TYPE_POINTER);
+
+ g_value_take_object (&desktop_value, desktop);
+ g_value_take_object (&metacity_value, metacity);
+- g_value_take_object (&mutter_value, mutter);
++ g_value_take_object (&marco_value, marco);
+ g_value_take_object (&gwd_value, gwd);
+ g_value_set_pointer (&writable_value, writable);
+
+@@ -429,8 +445,8 @@
+ param[0].value = desktop_value;
+ param[1].name = "metacity-gsettings";
+ param[1].value = metacity_value;
+- param[2].name = "mutter-gsettings";
+- param[2].value = mutter_value;
++ param[2].name = "marco-gsettings";
++ param[2].value = marco_value;
+ param[3].name = "gwd-gsettings";
+ param[3].value = gwd_value;
+ param[4].name = "writable-settings";
+@@ -442,10 +458,33 @@
+
+ g_value_unset (&desktop_value);
+ g_value_unset (&metacity_value);
+- g_value_unset (&mutter_value);
++ g_value_unset (&marco_value);
+ g_value_unset (&gwd_value);
+ g_value_unset (&writable_value);
+
++ priv = GET_PRIVATE (storage);
++ priv->is_mate_desktop = FALSE;
++
++ if (marco) {
++ const gchar *xdg_current_desktop;
++
++ xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP");
++ if (xdg_current_desktop) {
++ gchar **desktops;
++ gint i;
++
++ desktops = g_strsplit (xdg_current_desktop, ":", -1);
++ for (i = 0; desktops[i] != NULL; i++) {
++ if (g_strcmp0 (desktops[i], "MATE") == 0) {
++ priv->is_mate_desktop = TRUE;
++ break;
++ }
++ }
++
++ g_strfreev (desktops);
++ }
++ }
++
+ return storage;
+ }
+
+@@ -531,33 +570,6 @@
+ }
+
+ static void
+-org_gnome_mutter_settings_changed (GSettings *settings,
+- const gchar *key,
+- gpointer user_data)
+-{
+- GWDSettingsStorage *storage = GWD_SETTINGS_STORAGE_INTERFACE (user_data);
+-
+- if (strcmp (key, ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH) == 0)
+- gwd_settings_storage_update_draggable_border_width (storage);
+-}
+-
+-void
+-gwd_connect_org_gnome_mutter_settings (GSettings *settings,
+- GWDSettingsStorage *storage)
+-{
+- if (!settings)
+- return;
+-
+- g_signal_connect (settings, "changed", (GCallback) org_gnome_mutter_settings_changed, storage);
+-}
+-
+-GSettings *
+-gwd_get_org_gnome_mutter_settings ()
+-{
+- return get_settings_no_abort (ORG_GNOME_MUTTER);
+-}
+-
+-static void
+ org_gnome_desktop_wm_keybindings_settings_changed (GSettings *settings,
+ const gchar *key,
+ gpointer user_data)
+@@ -595,3 +607,43 @@
+ {
+ return get_settings_no_abort (ORG_GNOME_DESKTOP_WM_PREFERENCES);
+ }
++
++static void
++org_mate_marco_general_settings_changed (GSettings *settings,
++ const gchar *key,
++ gpointer user_data)
++{
++ GWDSettingsStorage *storage;
++
++ storage = GWD_SETTINGS_STORAGE_INTERFACE (user_data);
++
++ if (strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT) == 0)
++ gwd_settings_storage_update_font (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT) == 0)
++ gwd_settings_storage_update_font (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR) == 0)
++ gwd_settings_storage_update_titlebar_actions (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_THEME) == 0)
++ gwd_settings_storage_update_metacity_theme (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT) == 0)
++ gwd_settings_storage_update_button_layout (storage);
++}
++
++void
++gwd_connect_org_mate_marco_general_settings (GSettings *settings,
++ GWDSettingsStorage *storage)
++{
++ if (!settings)
++ return;
++
++ g_signal_connect (settings, "changed", (GCallback) org_mate_marco_general_settings_changed, storage);
++}
++
++GSettings *
++gwd_get_org_mate_marco_general_settings ()
++{
++ return get_settings_no_abort (ORG_MATE_MARCO_GENERAL);
++}
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-gsettings.h b/gtk/window-decorator/gwd-settings-storage-gsettings.h
+--- a/gtk/window-decorator/gwd-settings-storage-gsettings.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-gsettings.h 2016-04-09 19:33:06.810364208 +1000
+@@ -31,7 +31,7 @@
+ GWDSettingsStorage *
+ gwd_settings_storage_gsettings_new (GSettings *orgGNOMEDesktopSettings,
+ GSettings *metacitySettings,
+- GSettings *mutterSettings,
++ GSettings *marcoSettings,
+ GSettings *gwdSettings,
+ GWDSettingsWritable *writableSettings);
+
+@@ -50,23 +50,23 @@
+ gwd_get_org_gnome_metacity_settings ();
+
+ void
+-gwd_connect_org_gnome_mutter_settings (GSettings *settings,
+- GWDSettingsStorage *storage);
++gwd_connect_org_gnome_desktop_wm_preferences_settings (GSettings *settings,
++ GWDSettingsStorage *storage);
+
+ GSettings *
+-gwd_get_org_gnome_mutter_settings ();
++gwd_get_org_gnome_desktop_wm_preferences_settings ();
+
+ void
+-gwd_connect_org_gnome_desktop_wm_preferences_settings (GSettings *settings,
+- GWDSettingsStorage *storage);
++gwd_connect_org_mate_marco_general_settings (GSettings *settings,
++ GWDSettingsStorage *storage);
+
+ GSettings *
+-gwd_get_org_gnome_desktop_wm_preferences_settings ();
++gwd_get_org_mate_marco_general_settings ();
+
+ extern const gchar * ORG_COMPIZ_GWD;
+ extern const gchar * ORG_GNOME_METACITY;
+-extern const gchar * ORG_GNOME_MUTTER;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES;
++extern const gchar * ORG_MATE_MARCO_GENERAL;
+
+ extern const gchar * ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS;
+ extern const gchar * ORG_COMPIZ_GWD_KEY_BLUR_TYPE;
+@@ -77,7 +77,6 @@
+ extern const gchar * ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME;
+ extern const gchar * ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION;
+ extern const gchar * ORG_GNOME_METACITY_THEME;
+-extern const gchar * ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR;
+@@ -85,6 +84,13 @@
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_THEME;
++extern const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT;
+
+ G_END_DECLS
+
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-interface.c b/gtk/window-decorator/gwd-settings-storage-interface.c
+--- a/gtk/window-decorator/gwd-settings-storage-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-interface.c 2016-04-09 19:33:04.183693086 +1000
+@@ -33,12 +33,6 @@
+ return (*interface->update_use_tooltips) (settings);
+ }
+
+-gboolean gwd_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDSettingsStorageInterface *interface = GWD_SETTINGS_STORAGE_GET_INTERFACE (settings);
+- return (*interface->update_draggable_border_width) (settings);
+-}
+-
+ gboolean gwd_settings_storage_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDSettingsStorageInterface *interface = GWD_SETTINGS_STORAGE_GET_INTERFACE (settings);
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-interface.h b/gtk/window-decorator/gwd-settings-storage-interface.h
+--- a/gtk/window-decorator/gwd-settings-storage-interface.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-interface.h 2016-04-09 19:33:04.183693086 +1000
+@@ -40,7 +40,6 @@
+ GTypeInterface parent;
+
+ gboolean (*update_use_tooltips) (GWDSettingsStorage *settings);
+- gboolean (*update_draggable_border_width) (GWDSettingsStorage *settings);
+ gboolean (*update_blur) (GWDSettingsStorage *settings);
+ gboolean (*update_metacity_theme) (GWDSettingsStorage *settings);
+ gboolean (*update_opacity) (GWDSettingsStorage *settings);
+@@ -50,7 +49,6 @@
+ };
+
+ gboolean gwd_settings_storage_update_use_tooltips (GWDSettingsStorage *settings);
+-gboolean gwd_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_blur (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_metacity_theme (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_opacity (GWDSettingsStorage *settings);
+diff -Naur a/gtk/window-decorator/gwd-settings-writable-interface.c b/gtk/window-decorator/gwd-settings-writable-interface.c
+--- a/gtk/window-decorator/gwd-settings-writable-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-writable-interface.c 2016-04-09 19:33:04.183693086 +1000
+@@ -77,14 +77,6 @@
+ }
+
+ gboolean
+-gwd_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDSettingsWritableInterface *iface = GWD_SETTINGS_WRITABLE_GET_INTERFACE (settings);
+- return (*iface->draggable_border_width_changed) (settings, draggable_border_width);
+-}
+-
+-gboolean
+ gwd_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type)
+ {
+diff -Naur a/gtk/window-decorator/gwd-settings-writable-interface.h b/gtk/window-decorator/gwd-settings-writable-interface.h
+--- a/gtk/window-decorator/gwd-settings-writable-interface.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-writable-interface.h 2016-04-09 19:33:04.183693086 +1000
+@@ -54,8 +54,6 @@
+ const gchar *inactive_shadow_color);
+ gboolean (*use_tooltips_changed) (GWDSettingsWritable *settings,
+ gboolean new_value);
+- gboolean (*draggable_border_width_changed) (GWDSettingsWritable *settings,
+- gint new_value);
+ gboolean (*blur_changed) (GWDSettingsWritable *settings,
+ const gchar *type);
+ gboolean (*metacity_theme_changed) (GWDSettingsWritable *settings,
+@@ -102,10 +100,6 @@
+ gboolean use_tooltips);
+
+ gboolean
+-gwd_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width);
+-
+-gboolean
+ gwd_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type);
+
+diff -Naur a/gtk/window-decorator/gwd-settings.c b/gtk/window-decorator/gwd-settings.c
+--- a/gtk/window-decorator/gwd-settings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings.c 2016-04-09 19:33:04.183693086 +1000
+@@ -60,21 +60,20 @@
+ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADOW = 1,
+ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADOW = 2,
+ GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS = 3,
+- GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH = 4,
+- GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED = 5,
+- GWD_SETTINGS_IMPL_PROPERTY_METACITY_THEME = 6,
+- GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_OPACITY = 7,
+- GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_OPACITY = 8,
+- GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADE_OPACITY = 9,
+- GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADE_OPACITY = 10,
+- GWD_SETTINGS_IMPL_PROPERTY_BUTTON_LAYOUT = 11,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_DOUBLE_CLICK = 12,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_MIDDLE_CLICK = 13,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_RIGHT_CLICK = 14,
+- GWD_SETTINGS_IMPL_PROPERTY_MOUSE_WHEEL_ACTION = 15,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_FONT = 16,
+- GWD_SETTINGS_IMPL_PROPERTY_CMDLINE_OPTIONS = 17,
+- GWD_SETTINGS_IMPL_PROPERTY_SETTINGS_NOTIFIED = 18
++ GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED = 4,
++ GWD_SETTINGS_IMPL_PROPERTY_METACITY_THEME = 5,
++ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_OPACITY = 6,
++ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_OPACITY = 7,
++ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADE_OPACITY = 8,
++ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADE_OPACITY = 9,
++ GWD_SETTINGS_IMPL_PROPERTY_BUTTON_LAYOUT = 10,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_DOUBLE_CLICK = 11,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_MIDDLE_CLICK = 12,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_RIGHT_CLICK = 13,
++ GWD_SETTINGS_IMPL_PROPERTY_MOUSE_WHEEL_ACTION = 14,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_FONT = 15,
++ GWD_SETTINGS_IMPL_PROPERTY_CMDLINE_OPTIONS = 16,
++ GWD_SETTINGS_IMPL_PROPERTY_SETTINGS_NOTIFIED = 17
+ };
+
+ enum
+@@ -90,7 +89,6 @@
+ decor_shadow_options_t active_shadow;
+ decor_shadow_options_t inactive_shadow;
+ gboolean use_tooltips;
+- gint draggable_border_width;
+ gint blur_type;
+ gchar *metacity_theme;
+ gdouble metacity_active_opacity;
+@@ -241,24 +239,6 @@
+ }
+
+ static gboolean
+-gwd_settings_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDSettingsImpl *settings_impl = GWD_SETTINGS_IMPL (settings);
+- GWDSettingsImplPrivate *priv = GET_PRIVATE (settings_impl);
+-
+- if (priv->draggable_border_width != draggable_border_width)
+- {
+- priv->draggable_border_width = draggable_border_width;
+- append_to_notify_funcs (settings_impl, gwd_settings_notified_update_decorations);
+- release_notify_funcs (settings_impl);
+- return TRUE;
+- }
+- else
+- return FALSE;
+-}
+-
+-static gboolean
+ gwd_settings_blur_changed (GWDSettingsWritable *settings,
+ const gchar *type)
+
+@@ -533,7 +513,6 @@
+ {
+ interface->shadow_property_changed = gwd_settings_shadow_property_changed;
+ interface->use_tooltips_changed = gwd_settings_use_tooltips_changed;
+- interface->draggable_border_width_changed = gwd_settings_draggable_border_width_changed;
+ interface->blur_changed = gwd_settings_blur_changed;
+ interface->metacity_theme_changed = gwd_settings_metacity_theme_changed;
+ interface->opacity_changed = gwd_settings_opacity_changed;
+@@ -635,9 +614,6 @@
+ case GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS:
+ g_value_set_boolean (value, priv->use_tooltips);
+ break;
+- case GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH:
+- g_value_set_int (value, priv->draggable_border_width);
+- break;
+ case GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED:
+ g_value_set_int (value, priv->blur_type);
+ break;
+@@ -702,9 +678,6 @@
+ GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS,
+ "use-tooltips");
+ g_object_class_override_property (object_class,
+- GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- "draggable-border-width");
+- g_object_class_override_property (object_class,
+ GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED,
+ "blur");
+ g_object_class_override_property (object_class,
+@@ -779,7 +752,6 @@
+ priv->inactive_shadow.shadow_color[0] = 0;
+ priv->inactive_shadow.shadow_color[1] = 0;
+ priv->inactive_shadow.shadow_color[2] = 0;
+- priv->draggable_border_width = DRAGGABLE_BORDER_WIDTH_DEFAULT;
+ priv->blur_type = BLUR_TYPE_DEFAULT;
+ priv->metacity_theme = g_strdup (METACITY_THEME_DEFAULT);
+ priv->metacity_active_opacity = METACITY_ACTIVE_OPACITY_DEFAULT;
+diff -Naur a/gtk/window-decorator/settings.c b/gtk/window-decorator/settings.c
+--- a/gtk/window-decorator/settings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/settings.c 2016-04-09 19:33:06.813697548 +1000
+@@ -46,15 +46,15 @@
+ #define STORAGE_USED
+ GSettings *compiz = gwd_get_org_compiz_gwd_settings ();
+ GSettings *metacity = gwd_get_org_gnome_metacity_settings ();
+- GSettings *mutter = gwd_get_org_gnome_mutter_settings ();
+ GSettings *gnome = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++ GSettings *marco = gwd_get_org_mate_marco_general_settings ();
+
+- storage = gwd_settings_storage_gsettings_new (gnome, metacity, mutter, compiz, writable);
++ storage = gwd_settings_storage_gsettings_new (gnome, metacity, marco, compiz, writable);
+
+ gwd_connect_org_compiz_gwd_settings (compiz, storage);
+ gwd_connect_org_gnome_metacity_settings (metacity, storage);
+- gwd_connect_org_gnome_mutter_settings (mutter, storage);
+ gwd_connect_org_gnome_desktop_wm_preferences_settings (gnome, storage);
++ gwd_connect_org_mate_marco_general_settings (marco, storage);
+ #endif
+
+ GdkDisplay *display = gdk_display_get_default ();
+@@ -72,7 +72,6 @@
+ gwd_settings_storage_update_font (storage);
+ gwd_settings_storage_update_titlebar_actions (storage);
+ gwd_settings_storage_update_blur (storage);
+- gwd_settings_storage_update_draggable_border_width (storage);
+ gwd_settings_storage_update_use_tooltips (storage);
+ gwd_process_decor_shadow_property_update ();
+ #else
+diff -Naur a/gtk/window-decorator/settings.c.orig b/gtk/window-decorator/settings.c.orig
+--- a/gtk/window-decorator/settings.c.orig 1970-01-01 10:00:00.000000000 +1000
++++ b/gtk/window-decorator/settings.c.orig 2016-04-09 19:33:04.187026425 +1000
+@@ -0,0 +1,98 @@
++/*
++ * Copyright © 2006 Novell, Inc.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ * Boston, MA 02111-1307, USA.
++ *
++ * Author: David Reveman <davidr@novell.com>
++ */
++
++#include "gtk-window-decorator.h"
++#include "gwd-settings-writable-interface.h"
++#include "gwd-settings-storage-interface.h"
++
++#ifdef USE_GSETTINGS
++#include "gwd-settings-storage-gsettings.h"
++#endif
++
++#include "gwd-settings-xproperty-interface.h"
++#include "gwd-settings-xproperty-storage.h"
++
++GWDSettingsStorage *storage = NULL;
++GWDSettingsXPropertyStorage *xprop_storage = NULL;
++
++#ifdef USE_GSETTINGS
++
++
++#endif
++
++gboolean
++init_settings (GWDSettingsWritable *writable,
++ WnckScreen *screen)
++{
++#ifdef USE_GSETTINGS
++#define STORAGE_USED
++ GSettings *compiz = gwd_get_org_compiz_gwd_settings ();
++ GSettings *metacity = gwd_get_org_gnome_metacity_settings ();
++ GSettings *gnome = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++
++ storage = gwd_settings_storage_gsettings_new (gnome, metacity, compiz, writable);
++
++ gwd_connect_org_compiz_gwd_settings (compiz, storage);
++ gwd_connect_org_gnome_metacity_settings (metacity, storage);
++ gwd_connect_org_gnome_desktop_wm_preferences_settings (gnome, storage);
++#endif
++
++ GdkDisplay *display = gdk_display_get_default ();
++ Display *xdisplay = gdk_x11_display_get_xdisplay (display);
++ Window root = gdk_x11_get_default_root_xwindow ();
++
++ xprop_storage = gwd_settings_storage_xprop_new (xdisplay,
++ root,
++ writable);
++
++#ifdef STORAGE_USED
++ gwd_settings_storage_update_metacity_theme (storage);
++ gwd_settings_storage_update_opacity (storage);
++ gwd_settings_storage_update_button_layout (storage);
++ gwd_settings_storage_update_font (storage);
++ gwd_settings_storage_update_titlebar_actions (storage);
++ gwd_settings_storage_update_blur (storage);
++ gwd_settings_storage_update_use_tooltips (storage);
++ gwd_process_decor_shadow_property_update ();
++#else
++ storage = NULL;
++#endif
++
++#undef STORAGE_USED
++
++ return TRUE;
++}
++
++void
++fini_settings ()
++{
++ if (storage)
++ g_object_unref (storage);
++
++ if (xprop_storage)
++ g_object_unref (xprop_storage);
++}
++
++gboolean
++gwd_process_decor_shadow_property_update ()
++{
++ return gwd_settings_xproperty_storage_update_all (xprop_storage);
++}
+diff -Naur a/gtk/window-decorator/tests/CMakeLists.txt b/gtk/window-decorator/tests/CMakeLists.txt
+--- a/gtk/window-decorator/tests/CMakeLists.txt 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/CMakeLists.txt 2016-04-09 19:33:06.813697548 +1000
+@@ -90,20 +90,20 @@
+
+ add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_gnome_metacity_schema)
+
+- set (_mutter_gschema_name org.gnome.mutter)
+- set (_mutter_gschema_filename ${_mutter_gschema_name}.gschema.xml)
+- set (_mutter_gschema_filepath ${CMAKE_CURRENT_SOURCE_DIR}/${_mutter_gschema_filename})
+- set (_mutter_gschema_generated_location ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/${_mutter_gschema_filename})
+-
+- add_custom_command (OUTPUT ${_mutter_gschema_generated_location}
+- COMMAND cp -r ${_mutter_gschema_filepath} ${_mutter_gschema_generated_location}
+- DEPENDS ${_mutter_gschema_filepath}
++ set (_marco_gschema_name org.mate.marco)
++ set (_marco_gschema_filename ${_marco_gschema_name}.gschema.xml)
++ set (_marco_gschema_filepath ${CMAKE_CURRENT_SOURCE_DIR}/${_marco_gschema_filename})
++ set (_marco_gschema_generated_location ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/${_marco_gschema_filename})
++
++ add_custom_command (OUTPUT ${_marco_gschema_generated_location}
++ COMMAND cp -r ${_marco_gschema_filepath} ${_marco_gschema_generated_location}
++ DEPENDS ${_marco_gschema_filepath}
+ VERBATIM)
+
+- add_custom_target (compiz_gwd_gsettings_org_gnome_mutter_schema ALL
+- DEPENDS ${_mutter_gschema_generated_location})
++ add_custom_target (compiz_gwd_gsettings_org_mate_marco_schema ALL
++ DEPENDS ${_marco_gschema_generated_location})
+
+- add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_gnome_mutter_schema)
++ add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_nate_marco_schema)
+
+ set (COMPIZ_TEST_GWD_SETTINGS_ADDITIONAL_LIBRARIES
+ ${COMPIZ_TEST_GWD_SETTINGS_ADDITIONAL_LIBRARIES}
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -128,12 +128,6 @@
+ GWD_MOCK_SETTINGS_PROPERTY_USE_TOOLTIPS,
+ "use-tooltips");
+ g_object_class_override_property (object_class,
+- GWD_MOCK_SETTINGS_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- "draggable-border-width");
+- g_object_class_override_property (object_class,
+- GWD_MOCK_SETTINGS_PROPERTY_ATTACH_MODAL_DIALOGS,
+- "attach-modal-dialogs");
+- g_object_class_override_property (object_class,
+ GWD_MOCK_SETTINGS_PROPERTY_BLUR_CHANGED,
+ "blur");
+ g_object_class_override_property (object_class,
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -66,13 +66,6 @@
+ return settingsGMock->updateUseTooltips ();
+ }
+
+-gboolean gwd_mock_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDMockSettingsStorage *settingsStorageMock = GWD_MOCK_SETTINGS_STORAGE (settings);
+- GWDMockSettingsStorageGMockInterface *settingsGMock = GET_PRIVATE (settingsStorageMock)->mock;
+- return settingsGMock->updateDraggableBorderWidth ();
+-}
+-
+ gboolean gwd_mock_settings_storage_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDMockSettingsStorage *settingsStorageMock = GWD_MOCK_SETTINGS_STORAGE (settings);
+@@ -118,7 +111,6 @@
+ static void gwd_mock_settings_storage_interface_init (GWDSettingsStorageInterface *interface)
+ {
+ interface->update_use_tooltips = gwd_mock_settings_storage_update_use_tooltips;
+- interface->update_draggable_border_width = gwd_mock_settings_storage_update_draggable_border_width;
+ interface->update_blur = gwd_mock_settings_storage_update_blur;
+ interface->update_metacity_theme = gwd_mock_settings_storage_update_metacity_theme;
+ interface->update_opacity = gwd_mock_settings_storage_update_opacity;
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -108,14 +108,6 @@
+ }
+
+ gboolean
+-gwd_mock_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDMockSettingsWritableGMockInterface *gmockSettingsWritable = GET_PRIVATE (settings)->mock;
+- return gmockSettingsWritable->draggableBorderWidthChanged (draggable_border_width);
+-}
+-
+-gboolean
+ gwd_mock_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type)
+ {
+@@ -178,7 +170,6 @@
+ {
+ interface->shadow_property_changed = gwd_mock_settings_writable_shadow_property_changed;
+ interface->use_tooltips_changed = gwd_mock_settings_writable_use_tooltips_changed;
+- interface->draggable_border_width_changed = gwd_mock_settings_writable_draggable_border_width_changed;
+ interface->blur_changed = gwd_mock_settings_writable_blur_changed;
+ interface->metacity_theme_changed = gwd_mock_settings_writable_metacity_theme_changed;
+ interface->opacity_changed = gwd_mock_settings_writable_opacity_changed;
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h 2016-04-09 19:33:04.187026425 +1000
+@@ -58,7 +58,6 @@
+ gdouble inactive_shadow_offset_y,
+ const gchar *inactive_shadow_color) = 0;
+ virtual gboolean useTooltipsChanged (gboolean newValue) = 0;
+- virtual gboolean draggableBorderWidthChanged (gint newValue) = 0;
+ virtual gboolean blurChanged (const gchar *type) = 0;
+ virtual gboolean metacityThemeChanged (gboolean useMetacityTheme, const gchar *metacityTheme) = 0;
+ virtual gboolean opacityChanged (gdouble inactiveOpacity,
+@@ -88,7 +87,6 @@
+ MOCK_METHOD10 (shadowPropertyChanged, gboolean (gdouble, gdouble, gdouble, gdouble, const gchar *,
+ gdouble, gdouble, gdouble, gdouble, const gchar *));
+ MOCK_METHOD1 (useTooltipsChanged, gboolean (gboolean));
+- MOCK_METHOD1 (draggableBorderWidthChanged, gboolean (gint));
+ MOCK_METHOD1 (blurChanged, gboolean (const gchar *));
+ MOCK_METHOD2 (metacityThemeChanged, gboolean (gboolean, const gchar *));
+ MOCK_METHOD4 (opacityChanged, gboolean (gdouble, gdouble, gboolean, gboolean));
+diff -Naur a/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml b/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml
+--- a/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml 1970-01-01 10:00:00.000000000 +1000
+@@ -1,11 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<schemalist>
+- <schema path="/org/gnome/mutter/" id="org.gnome.mutter" gettext-domain="@GETTEXT_DOMAIN">
+- <key type="i" name="draggable-border-width">
+- <default>10</default>
+- <range min="0" max="64"/>
+- <summary>Draggable border width</summary>
+- <description>The amount of total draggable borders. If the theme's visible borders are not enough, invisible borders will be added to meet this value.</description>
+- </key>
+- </schema>
+-</schemalist>
+diff -Naur a/gtk/window-decorator/tests/org.mate.marco.gschema.xml b/gtk/window-decorator/tests/org.mate.marco.gschema.xml
+--- a/gtk/window-decorator/tests/org.mate.marco.gschema.xml 1970-01-01 10:00:00.000000000 +1000
++++ b/gtk/window-decorator/tests/org.mate.marco.gschema.xml 2016-04-09 19:33:06.813697548 +1000
+@@ -0,0 +1,53 @@
++<schemalist>
++ <enum id="org.mate.Marco.ActionTitlebar">
++ <value nick="toggle_shade" value="0"/>
++ <value nick="toggle_maximize" value="1"/>
++ <value nick="toggle_maximize_horizontally" value="2"/>
++ <value nick="toggle_maximize_vertically" value="3"/>
++ <value nick="minimize" value="4"/>
++ <value nick="none" value="5"/>
++ <value nick="lower" value="6"/>
++ <value nick="menu" value="7"/>
++ <value nick="last" value="8"/>
++ </enum>
++ <schema id="org.mate.Marco" path="/org/mate/marco/">
++ <child name="general" schema="org.mate.Marco.general"/>
++ </schema>
++ <schema id="org.mate.Marco.general" path="/org/mate/marco/general/">
++ <key name="button-layout" type="s">
++ <default>'menu:minimize,maximize,close'</default>
++ <summary>Arrangement of buttons on the titlebar</summary>
++ <description>Arrangement of buttons on the titlebar. The value should be a string, such as "menu:minimize,maximize,spacer,close"; the colon separates the left corner of the window from the right corner, and the button names are comma-separated. Duplicate buttons are not allowed. Unknown button names are silently ignored so that buttons can be added in future marco versions without breaking older versions. A special spacer tag can be used to insert some space between two adjacent buttons.</description>
++ </key>
++ <key name="action-double-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'toggle_maximize'</default>
++ <summary>Action on title bar double-click</summary>
++ <description>This option determines the effects of double-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="action-middle-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'lower'</default>
++ <summary>Action on title bar middle-click</summary>
++ <description>This option determines the effects of middle-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="action-right-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'menu'</default>
++ <summary>Action on title bar right-click</summary>
++ <description>This option determines the effects of right-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="theme" type="s">
++ <default>'Menta'</default>
++ <summary>Current theme</summary>
++ <description>The theme determines the appearance of window borders, titlebar, and so forth.</description>
++ </key>
++ <key name="titlebar-uses-system-font" type="b">
++ <default>false</default>
++ <summary>Use standard system font in window titles</summary>
++ <description>If true, ignore the titlebar_font option, and use the standard application font for window titles.</description>
++ </key>
++ <key name="titlebar-font" type="s">
++ <default>'Sans Bold 10'</default>
++ <summary>Window title font</summary>
++ <description>A font description string describing a font for window titlebars. The size from the description will only be used if the titlebar_font_size option is set to 0. Also, this option is disabled if the titlebar_uses_desktop_font option is set to true.</description>
++ </key>
++ </schema>
++</schemalist>
+diff -Naur a/gtk/window-decorator/tests/test_gwd_settings.cpp b/gtk/window-decorator/tests/test_gwd_settings.cpp
+--- a/gtk/window-decorator/tests/test_gwd_settings.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/test_gwd_settings.cpp 2016-04-09 19:33:06.813697548 +1000
+@@ -197,7 +197,6 @@
+ const std::string INACTIVE_SHADOW_COLOR_STR_VALUE ("#00000000");
+ const gushort INACTIVE_SHADOW_COLOR_VALUE[] = { 0, 0, 0 };
+ const gboolean USE_TOOLTIPS_VALUE = !USE_TOOLTIPS_DEFAULT;
+- const guint DRAGGABLE_BORDER_WIDTH_VALUE = 1;
+ const std::string BLUR_TYPE_TITLEBAR_VALUE ("titlebar");
+ const gint BLUR_TYPE_TITLEBAR_INT_VALUE = BLUR_TYPE_TITLEBAR;
+ const std::string BLUR_TYPE_ALL_VALUE ("all");
+@@ -328,7 +327,6 @@
+ testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,
+ Eq (testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, useTooltipsChanged (testing_values::USE_TOOLTIPS_VALUE)).WillOnce (Return (TRUE));
+- EXPECT_CALL (writableGMock, draggableBorderWidthChanged (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE)).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, blurChanged (Eq (testing_values::BLUR_TYPE_TITLEBAR_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, metacityThemeChanged (TRUE, Eq (testing_values::METACITY_THEME_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, opacityChanged (testing_values::ACTIVE_OPACITY_VALUE,
+@@ -361,7 +359,6 @@
+ testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,
+ testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE.c_str ()), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_use_tooltips_changed (writableMock.get (), testing_values::USE_TOOLTIPS_VALUE), IsTrue ());
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (writableMock.get (), testing_values::DRAGGABLE_BORDER_WIDTH_VALUE), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_blur_changed (writableMock.get (), testing_values::BLUR_TYPE_TITLEBAR_VALUE.c_str ()), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_metacity_theme_changed (writableMock.get (),
+ testing_values::USE_METACITY_THEME_VALUE,
+@@ -461,14 +458,6 @@
+ "use-tooltips",
+ &booleanGValue);
+
+- EXPECT_CALL (settingsGMock, getProperty (GWD_MOCK_SETTINGS_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- GValueMatch <gint> (0, g_value_get_int),
+- _));
+-
+- g_object_get_property (G_OBJECT (settingsMock.get ()),
+- "draggable-border-width",
+- &integerGValue);
+-
+ EXPECT_CALL (settingsGMock, getProperty (GWD_MOCK_SETTINGS_PROPERTY_BLUR_CHANGED,
+ GValueMatch <gint> (0, g_value_get_int),
+ _));
+@@ -749,29 +738,6 @@
+ USE_TOOLTIPS_DEFAULT), IsFalse ());
+ }
+
+-TEST_F(GWDSettingsTest, TestDraggableBorderWidthChanged)
+-{
+- EXPECT_CALL (*mGMockNotified, updateDecorations ());
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (GWD_SETTINGS_WRITABLE_INTERFACE (mSettings.get ()),
+- testing_values::DRAGGABLE_BORDER_WIDTH_VALUE), IsTrue ());
+-
+- AutoUnsetGValue draggableBorderWidthValue (G_TYPE_INT);
+- GValue &draggableBorderWidthGValue = draggableBorderWidthValue;
+-
+- g_object_get_property (G_OBJECT (mSettings.get ()),
+- "draggable-border-width",
+- &draggableBorderWidthGValue);
+-
+- EXPECT_THAT (&draggableBorderWidthGValue, GValueMatch <gint> (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE,
+- g_value_get_int));
+-}
+-
+-TEST_F(GWDSettingsTest, TestDraggableBorderWidthChangedIsDefault)
+-{
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (GWD_SETTINGS_WRITABLE_INTERFACE (mSettings.get ()),
+- DRAGGABLE_BORDER_WIDTH_DEFAULT), IsFalse ());
+-}
+-
+ TEST_F(GWDSettingsTest, TestBlurChangedTitlebar)
+ {
+ EXPECT_CALL (*mGMockNotified, updateDecorations ());
+@@ -1183,7 +1149,6 @@
+ virtual void SetUp (GWDSettingsWritable *writable) = 0;
+ virtual GWDSettingsStorage * GetStorage () = 0;
+ virtual void SetUseTooltips (gboolean useTooltips) = 0;
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth) = 0;
+ virtual void SetBlur (const std::string &blurType) = 0;
+ virtual void SetOpacity (gdouble activeOpacity,
+ gdouble inactiveOpacity,
+@@ -1247,16 +1212,6 @@
+ gwd_settings_storage_update_use_tooltips (storage);
+ }
+
+-TEST_P (GWDSettingsTestStorageUpdates, TestSetDraggableBorderWidth)
+-{
+- GWDSettingsStorage *storage = GetParam ()->GetStorage ();
+- GetParam ()->SetDraggableBorderWidth (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE);
+-
+- EXPECT_CALL (*mSettingsMock, draggableBorderWidthChanged (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE));
+-
+- gwd_settings_storage_update_draggable_border_width (storage);
+-}
+-
+ TEST_P (GWDSettingsTestStorageUpdates, TestSetBlur)
+ {
+ GWDSettingsStorage *storage = GetParam ()->GetStorage ();
+@@ -1360,15 +1315,6 @@
+ gwd_settings_writable_use_tooltips_changed, mWritable, useTooltips)));
+ }
+
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth)
+- {
+- EXPECT_CALL (*mStorageMock, updateDraggableBorderWidth ())
+- .WillOnce (
+- InvokeFunctor (
+- boost::bind (
+- gwd_settings_writable_draggable_border_width_changed, mWritable, draggableBorderWidth)));
+- }
+-
+ virtual void SetBlur (const std::string &blurType)
+ {
+ EXPECT_CALL (*mStorageMock, updateBlur ())
+@@ -1482,8 +1428,8 @@
+
+ gwd_connect_org_compiz_gwd_settings (NULL, mStorage.get ());
+ gwd_connect_org_gnome_metacity_settings (NULL, mStorage.get ());
+- gwd_connect_org_gnome_mutter_settings (NULL, mStorage.get ());
+ gwd_connect_org_gnome_desktop_wm_preferences_settings (NULL, mStorage.get ());
++ gwd_connect_org_mate_marco_settings (NULL, mStorage.get ());
+
+ EXPECT_CALL (*mStorageMock, dispose ());
+ EXPECT_CALL (*mStorageMock, finalize ());
+@@ -1502,12 +1448,12 @@
+ /* We do not need to keep a reference to these */
+ mGWDSettings = gwd_get_org_compiz_gwd_settings ();
+ mMetacitySettings = gwd_get_org_gnome_metacity_settings ();
+- mMutterSettings = gwd_get_org_gnome_mutter_settings ();
+ mDesktopSettings = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++ mMarcoSettings = gwd_get_org_mate_marco_settings ();
+
+ mStorage.reset (gwd_settings_storage_gsettings_new (mDesktopSettings,
+ mMetacitySettings,
+- mMutterSettings,
++ mMarcoSettings,
+ mGWDSettings,
+ writable),
+ boost::bind (gwd_settings_storage_unref, _1));
+@@ -1523,11 +1469,6 @@
+ g_settings_set_boolean (mGWDSettings, ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS, useTooltips);
+ }
+
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth)
+- {
+- g_settings_set_int (mMutterSettings, ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH, draggableBorderWidth);
+- }
+-
+ virtual void SetBlur (const std::string &blurType)
+ {
+ g_settings_set_string (mGWDSettings, ORG_COMPIZ_GWD_KEY_BLUR_TYPE, blurType.c_str ());
+@@ -1549,6 +1490,7 @@
+ {
+ g_settings_set_boolean (mGWDSettings, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME, useMetacityTheme);
+ g_settings_set_string (mDesktopSettings, ORG_GNOME_DESKTOP_WM_PREFERENCES_THEME, metacityTheme.c_str ());
++ g_settings_set_string (mMarcoSettings, ORG_MATE_MARCO_GENERAL_THEME, metacityTheme.c_str ());
+ }
+
+ virtual void SetButtonLayout (const std::string &buttonLayout)
+@@ -1556,6 +1498,9 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT,
+ buttonLayout.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT,
++ buttonLayout.c_str ());
+ }
+
+ virtual void SetFont (gboolean useSystemFont, const std::string &titlebarFont)
+@@ -1566,6 +1511,12 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT,
+ titlebarFont.c_str ());
++ g_settings_set_boolean (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT,
++ useSystemFont);
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT,
++ titlebarFont.c_str ());
+ }
+
+ virtual void SetTitlebarActions (const std::string &doubleClickAction,
+@@ -1590,6 +1541,15 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR,
+ translatedRC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR,
++ translatedDC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR,
++ translatedMC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR,
++ translatedRC.c_str ());
+ g_settings_set_string (mGWDSettings,
+ ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION,
+ mouseWheelAction.c_str ());
+@@ -1600,8 +1560,8 @@
+ mStorage.reset ();
+ mGWDSettings = NULL;
+ mMetacitySettings = NULL;
+- mMutterSettings = NULL;
+ mDesktopSettings = NULL;
++ mMarcoSettings = NULL;
+ gsettingsEnv.TearDownEnv ();
+ gsliceEnv.TearDownEnv ();
+ }
+@@ -1610,8 +1570,8 @@
+
+ GSettings *mGWDSettings;
+ GSettings *mMetacitySettings;
+- GSettings *mMutterSettings;
+ GSettings *mDesktopSettings;
++ GSettings *mMarcoSettings;
+ boost::shared_ptr <GWDSettingsStorage> mStorage;
+ CompizGLibGSliceOffEnv gsliceEnv;
+ CompizGLibGSettingsMemoryBackendTestingEnv gsettingsEnv;