aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Gąsior2018-05-31 17:20:12 +0200
committerTomasz Gąsior2018-05-31 17:20:12 +0200
commit02cef46f58dcc26f5265e41f4614ffd39d44c259 (patch)
tree447b69f7c17881116a448374350f35e28843ab80
parent8dc7c51dea264a8d2c1bd8c7e8b2e1623b7602ed (diff)
downloadaur-02cef46f58dcc26f5265e41f4614ffd39d44c259.tar.gz
CSDs enabled on Wayland.
- Now it's possible to disable CSDs only on Xorg. Using gtk3-mushrooms with GNOME on Wayland is safe. - Additional CSS styles added for cleaning headerbars with forced server side decoration. - "fixes__window-background" restored (only for users without composition). - README updated.
-rw-r--r--.SRCINFO25
-rw-r--r--PKGBUILD26
-rw-r--r--README.md19
-rw-r--r--appearance__disable-backdrop.patch8
-rw-r--r--csd__clean-headerbar.patch89
-rw-r--r--csd__disabled-by-default.patch22
-rw-r--r--csd__headerbar-title.patch43
-rw-r--r--csd__server-side-shadow.patch29
-rw-r--r--fixes__window-background.patch16
-rw-r--r--other__default-settings.patch (renamed from default-settings.patch)0
-rw-r--r--smaller-adwaita.css8
11 files changed, 157 insertions, 128 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 573a3abebf15..bb5ca34e5a20 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
pkgbase = gtk3-mushrooms
- pkgdesc = GTK3 library with my modifications (see README).
+ pkgdesc = GTK3 patched for classic desktops like MATE/XFCE (see README).
pkgver = 3.22.30
- pkgrel = 2
- url = http://www.gtk.org/
+ pkgrel = 3
+ url = https://github.com/TomaszGasior/gtk3-mushrooms
arch = x86_64
license = LGPL
makedepends = gobject-introspection
@@ -39,6 +39,7 @@ pkgbase = gtk3-mushrooms
optdepends = libcups: for printing backends
provides = gtk3=3.22.30
provides = gtk3-print-backends
+ provides = gtk3-classic
conflicts = gtk3
conflicts = gtk3-print-backends
source = appearance__buttons-menus-icons.patch
@@ -49,14 +50,14 @@ pkgbase = gtk3-mushrooms
source = appearance__smaller-statusbar.patch
source = csd__clean-headerbar.patch
source = csd__disabled-by-default.patch
- source = csd__headerbar-title.patch
source = csd__server-side-shadow.patch
- source = default-settings.patch
source = file-chooser__places-sidebar.patch
source = file-chooser__typeahead.patch
source = fixes__atk-bridge-errors.patch
source = fixes__labels-wrapping.patch
source = fixes__too-large-menu-covers-bar.patch
+ source = fixes__window-background.patch
+ source = other__default-settings.patch
source = other__hide-insert-emoji.patch
source = other__mnemonics-delay.patch
source = popovers__color-chooser.patch
@@ -68,27 +69,27 @@ pkgbase = gtk3-mushrooms
source = settings.ini::https://git.archlinux.org/svntogit/packages.git/plain/trunk/settings.ini?h=packages/gtk3&id=fbcc57e8a97827926b6624bb8bc570f675c7188d
source = gtk-query-immodules-3.0.hook::https://git.archlinux.org/svntogit/packages.git/plain/trunk/gtk-query-immodules-3.0.hook?h=packages/gtk3&id=fbcc57e8a97827926b6624bb8bc570f675c7188d
sha256sums = 68b26360764a2ea7e057a2aaa29c6fdfe164b9987866e038d8d0188a025477fb
- sha256sums = b2f7d5d3a784b7f833d64c2a278f1d082bec5c53b4cc19602c808223625dedeb
+ sha256sums = eade303471a5929ccf6cf14ff434deccb0da017d5c4fdce3f5a3ffa117c1c954
sha256sums = 86f48054a2df6319d97db14fd17ea15d50b32ea6ba594d83e8faa1596ec657ab
sha256sums = 54020144ac0472ae170297b4158da719b49860b17234bf54351ba30f793a7fe7
sha256sums = be4ddf03a5cce8270e8118eb331b3056972c0bd490faa6e4a4ebe332ec4c2e91
sha256sums = 81138fbaff82e37a83da1c4aa074a6c708e6c50340e0ddeff3fb70e2a0b52e1f
- sha256sums = 3367e93113c8ebc31244d57845c41b81e5e70a62b64faf61f216f3455d7020b5
- sha256sums = 513f8d3092d8392898dbdffa57fb2e92a20ad1413161b71a2fe05ee3f5c3da58
- sha256sums = 4eb430f3375b3cf50ec919b868ebff3f50a6a72f40cfaf46e6ccdfc3586833e7
- sha256sums = d3816c145d4e0bc3fe04904434b2e2cae5a04d5691693d6b0c86391f76a5bf6a
- sha256sums = 37e3278dd33542b706eb9e1db56997b194a7e2f1fd729a8511369387a74b22bd
+ sha256sums = 515ff6df72934aa4294cdb1befd6c542a187fe3b4326cda68a8541dabbe657fd
+ sha256sums = 63bf214d836f688e628b30d1743ff9e47deb64d0f4bde9f0eb9c352fc00ca8d4
+ sha256sums = 1508ddc7e682cdaace327ffe2955abe90f903cf7ec923892b85673a37f76a32f
sha256sums = f0c8cbccab2bc9743075135bd5fa74f28dca722e8e723cf46e0dfa2b004a3791
sha256sums = 7b987cc9bd7ca9722bfb881b30b082c0d7409e3cd68592f5e7a1f401d73e7672
sha256sums = 99b12d7af7efc6a014e6afcab1ee82ea0feb0b5a4e9bbd663d1c45354cd34f2b
sha256sums = c45ed844355b5a4036c2df9a1710a04c4788b78add730506040ebdfb9ec53117
sha256sums = d4d27ccc5735ee1d2c8483da659ded3a05e9d33b3fe41d8ed77495e9ec38be96
+ sha256sums = ba3dc10e116edc96e53867953bfa00d408fcc6ec55913553669be90bea5ad90d
+ sha256sums = 37e3278dd33542b706eb9e1db56997b194a7e2f1fd729a8511369387a74b22bd
sha256sums = acd3babd22add981690728e84a89fb8bb332b7ac746e9db7cdb27c47f1ac0042
sha256sums = c213812e1fafeb5565f7e329c4501195f04adcfe377b88439a6d51d478edc071
sha256sums = 7f3e5da1622e243243ea9b1e487460f608dc375e79d800d2f0d826fd30be68ed
sha256sums = ef4fed3a364db8eb9c15c9ce0e733035722f168dc88b385df2178fc1168ada54
sha256sums = 2de68b575494d0d034accd7cd0ce881f366d5201a48496d8748c43f297836eac
- sha256sums = 0554ba2085fb8cec8e3b926efc250ae5c15cf47f2612c10cdd0e849bfb8d05a5
+ sha256sums = cae4474d2ef9b4b56316efe2b53d717188f3ef578d5513d1067ceaff87f2270d
sha256sums = a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567
sha256sums = 98b99ed14cc7545d1f30e244fe793ddd21a7db9d6f5e78b677113a89b621e459
sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202
diff --git a/PKGBUILD b/PKGBUILD
index 7f8e0b0d7ae7..a5d8a309af20 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,11 +7,11 @@ __arch_pkg_commit="fbcc57e8a97827926b6624bb8bc570f675c7188d"
pkgname=gtk3-mushrooms
pkgver=3.22.30
-pkgrel=2
-pkgdesc="GTK3 library with my modifications (see README)."
-url="http://www.gtk.org/"
+pkgrel=3
+pkgdesc="GTK3 patched for classic desktops like MATE/XFCE (see README)."
+url="https://github.com/TomaszGasior/gtk3-mushrooms"
conflicts=(gtk3 gtk3-print-backends)
-provides=(gtk3=$pkgver gtk3-print-backends)
+provides=(gtk3=$pkgver gtk3-print-backends gtk3-classic)
arch=(x86_64)
license=(LGPL)
depends=(
@@ -41,14 +41,14 @@ source=(
"appearance__smaller-statusbar.patch"
"csd__clean-headerbar.patch"
"csd__disabled-by-default.patch"
- "csd__headerbar-title.patch"
"csd__server-side-shadow.patch"
- "default-settings.patch"
"file-chooser__places-sidebar.patch"
"file-chooser__typeahead.patch"
"fixes__atk-bridge-errors.patch"
"fixes__labels-wrapping.patch"
"fixes__too-large-menu-covers-bar.patch"
+ "fixes__window-background.patch"
+ "other__default-settings.patch"
"other__hide-insert-emoji.patch"
"other__mnemonics-delay.patch"
"popovers__color-chooser.patch"
@@ -70,27 +70,27 @@ source=(
)
sha256sums=(
"68b26360764a2ea7e057a2aaa29c6fdfe164b9987866e038d8d0188a025477fb"
- "b2f7d5d3a784b7f833d64c2a278f1d082bec5c53b4cc19602c808223625dedeb"
+ "eade303471a5929ccf6cf14ff434deccb0da017d5c4fdce3f5a3ffa117c1c954"
"86f48054a2df6319d97db14fd17ea15d50b32ea6ba594d83e8faa1596ec657ab"
"54020144ac0472ae170297b4158da719b49860b17234bf54351ba30f793a7fe7"
"be4ddf03a5cce8270e8118eb331b3056972c0bd490faa6e4a4ebe332ec4c2e91"
"81138fbaff82e37a83da1c4aa074a6c708e6c50340e0ddeff3fb70e2a0b52e1f"
- "3367e93113c8ebc31244d57845c41b81e5e70a62b64faf61f216f3455d7020b5"
- "513f8d3092d8392898dbdffa57fb2e92a20ad1413161b71a2fe05ee3f5c3da58"
- "4eb430f3375b3cf50ec919b868ebff3f50a6a72f40cfaf46e6ccdfc3586833e7"
- "d3816c145d4e0bc3fe04904434b2e2cae5a04d5691693d6b0c86391f76a5bf6a"
- "37e3278dd33542b706eb9e1db56997b194a7e2f1fd729a8511369387a74b22bd"
+ "515ff6df72934aa4294cdb1befd6c542a187fe3b4326cda68a8541dabbe657fd"
+ "63bf214d836f688e628b30d1743ff9e47deb64d0f4bde9f0eb9c352fc00ca8d4"
+ "1508ddc7e682cdaace327ffe2955abe90f903cf7ec923892b85673a37f76a32f"
"f0c8cbccab2bc9743075135bd5fa74f28dca722e8e723cf46e0dfa2b004a3791"
"7b987cc9bd7ca9722bfb881b30b082c0d7409e3cd68592f5e7a1f401d73e7672"
"99b12d7af7efc6a014e6afcab1ee82ea0feb0b5a4e9bbd663d1c45354cd34f2b"
"c45ed844355b5a4036c2df9a1710a04c4788b78add730506040ebdfb9ec53117"
"d4d27ccc5735ee1d2c8483da659ded3a05e9d33b3fe41d8ed77495e9ec38be96"
+ "ba3dc10e116edc96e53867953bfa00d408fcc6ec55913553669be90bea5ad90d"
+ "37e3278dd33542b706eb9e1db56997b194a7e2f1fd729a8511369387a74b22bd"
"acd3babd22add981690728e84a89fb8bb332b7ac746e9db7cdb27c47f1ac0042"
"c213812e1fafeb5565f7e329c4501195f04adcfe377b88439a6d51d478edc071"
"7f3e5da1622e243243ea9b1e487460f608dc375e79d800d2f0d826fd30be68ed"
"ef4fed3a364db8eb9c15c9ce0e733035722f168dc88b385df2178fc1168ada54"
"2de68b575494d0d034accd7cd0ce881f366d5201a48496d8748c43f297836eac"
- "0554ba2085fb8cec8e3b926efc250ae5c15cf47f2612c10cdd0e849bfb8d05a5"
+ "cae4474d2ef9b4b56316efe2b53d717188f3ef578d5513d1067ceaff87f2270d"
"a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567"
"98b99ed14cc7545d1f30e244fe793ddd21a7db9d6f5e78b677113a89b621e459"
"01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202"
diff --git a/README.md b/README.md
index 6592704b3846..a3aadde3aca4 100644
--- a/README.md
+++ b/README.md
@@ -5,18 +5,17 @@ This is a set of patches for GTK3 library that makes it better for me and maybe
This package is based on official GTK3 package from Arch Linux. In my version library is compiled without documentation and example applications. Using this package with GNOME desktop is not recommended. It's for classic GTK-based environments like MATE or XFCE.
-Client Side Decorations
+Client Side Decorations (only on Xorg)
---
* CSDs are totally disabled by default. All windows are decorated only by window manager. You can enable CSDs by setting `GTK_CSD=0` environment variable (or `GTK_CSD=1` to force CSDs on each GTK3 window).
* Client side shadows of windows, menus and tooltips are disabled by default. You can enable shadows by setting `GTK_CSD=1` environment variable.
-* Window title and subtitle are removed from headerbar. Subtitle is added to native titlebar.
-* Minimize, maximize and close buttons are removed from headerbar. Application menu button has changed icon.
+* Minimize, maximize and close buttons, window title and subtitle are removed from headerbar. Subtitle is added to native titlebar.
File chooser
---
-* Typeahead feature is restored. Recursive file search will not be ran automatically when you start typing. You can still search recursively by Left Alt + S shortcut. See https://bugzilla.gnome.org/show_bug.cgi?id=784029.
+* Typeahead feature is restored. Recursive file search will not be ran automatically when you start typing. You can still search recursively by Left Alt + S shortcut. See https://gitlab.gnome.org/GNOME/gtk/issues/839.
* "Other locations" button is removed from places sidebar. All mounted devices and drives are accessible directly.
* Trash and XDG user directories (like Pictures, Downloads, Documents) are removed from places sidebar. You can add it as bookmarks.
* File system button in places sidebar is labeled as "File System" instead of "Computer".
@@ -28,7 +27,7 @@ Appearance
* Some GTK stock icons on buttons and context menus are restored. You can see it in GTK internal dialogs and in some applications.
* Regular colorized icons instead of symbolic icons are used in file chooser dialog.
* Appearance of print dialog is less "gnomish", natural margins are restored.
-* Backdrop CSS state is disabled. Inactive windows don't look differently. You can restore backdrop state by setting `GTK_CSD` environment variable.
+* Backdrop CSS state is disabled. Inactive windows don't look differently. You can restore backdrop state by setting `GTK_CSD=1` environment variable.
* Status bars are smaller regardless of used theme.
* File chooser dialog, places sidebar and color chooser dialog use classic menu as context menu instead of popover.
@@ -50,13 +49,7 @@ Other
Fixes
---
-* Menu bars are not covered by too high popup menus. See https://bugzilla.gnome.org/show_bug.cgi?id=792764.
+* Menu bars are not covered by too high popup menus. See https://gitlab.gnome.org/GNOME/gtk/issues/1016.
* Labels are wrapped similarly to GTK2. This patch fixes too wide windows in applications improperly ported from GTK2.
* Errors in console output because of integration with Accessibility Toolkit are hidden. See https://unix.stackexchange.com/questions/230238.
-
---------
-
-Credits
----
-
-* https://aur.archlinux.org/packages/gtk3-typeahead — file chooser typeahead patch.
+* Window background is set properly to theme background, only on Xorg when compositor is disabled. \ No newline at end of file
diff --git a/appearance__disable-backdrop.patch b/appearance__disable-backdrop.patch
index 72533731f2ba..567e91f50bf1 100644
--- a/appearance__disable-backdrop.patch
+++ b/appearance__disable-backdrop.patch
@@ -1,14 +1,14 @@
diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
---- ./org/gtk/gtkwindow.c 2017-11-07 20:52:24.000000000 +0100
-+++ ./mod/gtk/gtkwindow.c 2017-12-26 16:05:58.023753428 +0100
-@@ -7946,11 +7946,11 @@
+--- ./org/gtk/gtkwindow.c 2018-01-15 14:21:38.000000000 +0100
++++ ./mod/gtk/gtkwindow.c 2018-05-30 02:35:02.521000924 +0200
+@@ -7953,11 +7953,11 @@
GdkEventWindowState *event)
{
GtkWindow *window = GTK_WINDOW (widget);
GtkWindowPrivate *priv = window->priv;
- if (event->changed_mask & GDK_WINDOW_STATE_FOCUSED)
-+ if (event->changed_mask & GDK_WINDOW_STATE_FOCUSED && g_getenv ("GTK_CSD") != FALSE)
++ if ((event->changed_mask & GDK_WINDOW_STATE_FOCUSED) && priv->client_decorated)
ensure_state_flag_backdrop (widget);
if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
diff --git a/csd__clean-headerbar.patch b/csd__clean-headerbar.patch
index 008312eccac4..e65860c1f015 100644
--- a/csd__clean-headerbar.patch
+++ b/csd__clean-headerbar.patch
@@ -1,27 +1,59 @@
diff --color -U 5 -r -Z -B ./org/gtk/gtkheaderbar.c ./mod/gtk/gtkheaderbar.c
---- ./org/gtk/gtkheaderbar.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkheaderbar.c 2017-10-30 22:47:52.557245688 +0100
-@@ -321,10 +321,12 @@
-
+--- ./org/gtk/gtkheaderbar.c 2018-01-15 14:21:38.000000000 +0100
++++ ./mod/gtk/gtkheaderbar.c 2018-05-30 02:00:19.887457964 +0200
+@@ -298,10 +298,31 @@
+ priv->titlebar_end_separator = NULL;
+ }
+
+ priv->titlebar_icon = NULL;
+
++ gboolean csd_cleaned_headerbar = (!gtk_style_context_has_class (gtk_widget_get_style_context (toplevel), "csd") &&
++ !gtk_style_context_has_class (gtk_widget_get_style_context (toplevel), "solid-csd"));
++ if (csd_cleaned_headerbar)
++ {
++ if (priv->label_box != NULL)
++ {
++ priv->label_box = NULL;
++ priv->title_label = NULL;
++ priv->subtitle_label = NULL;
++ }
++ static gboolean style_added = FALSE;
++ if (!style_added)
++ {
++ style_added = TRUE;
++ GtkCssProvider *provider = gtk_css_provider_new ();
++ gtk_css_provider_load_from_data (provider,
++ "headerbar, .titlebar { border-radius: 0; border-top: 0; box-shadow: none; }", -1, NULL);
++ gtk_style_context_add_provider_for_screen (gtk_widget_get_screen (widget),
++ GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
++ }
++ }
+ if (!priv->shows_wm_decorations)
+ return;
+
+ direction = gtk_widget_get_direction (widget);
+
+@@ -325,10 +346,12 @@
+
is_sovereign_window = (!gtk_window_get_modal (window) &&
gtk_window_get_transient_for (window) == NULL &&
gtk_window_get_type_hint (window) == GDK_WINDOW_TYPE_HINT_NORMAL);
-
-+ if (g_getenv ("GTK_CSD") == FALSE)
-+ layout_desc = g_strdup ("menu");
+
++ if (csd_cleaned_headerbar)
++ layout_desc = strstr (layout_desc, "menu") ? g_strdup ("menu") : g_strdup ("");
tokens = g_strsplit (layout_desc, ":", 2);
if (tokens)
{
for (i = 0; i < 2; i++)
{
-@@ -385,13 +387,13 @@
+@@ -389,13 +412,13 @@
accessible = gtk_widget_get_accessible (button);
if (GTK_IS_ACCESSIBLE (accessible))
atk_object_set_name (accessible, _("Application menu"));
-
+
priv->titlebar_icon = image;
- if (!_gtk_header_bar_update_window_icon (bar, window))
-+ if (g_getenv ("GTK_CSD") == FALSE || !_gtk_header_bar_update_window_icon (bar, window))
++ if (csd_cleaned_headerbar || !_gtk_header_bar_update_window_icon (bar, window))
gtk_image_set_from_icon_name (GTK_IMAGE (priv->titlebar_icon),
- "application-x-executable-symbolic", GTK_ICON_SIZE_MENU);
+ "pan-down-symbolic", GTK_ICON_SIZE_MENU);
@@ -30,18 +62,43 @@ diff --color -U 5 -r -Z -B ./org/gtk/gtkheaderbar.c ./mod/gtk/gtkheaderbar.c
is_sovereign_window)
{
button = gtk_button_new ();
+@@ -1359,10 +1382,11 @@
+ }
+
+ gtk_widget_set_visible (priv->subtitle_sizing_label, priv->has_subtitle || (priv->subtitle && priv->subtitle[0]));
+
+ g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SUBTITLE]);
++ g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_TITLE]);
+ }
+
+ /**
+ * gtk_header_bar_get_subtitle:
+ * @bar: a #GtkHeaderBar
diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
---- ./org/gtk/gtkwindow.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkwindow.c 2017-10-30 22:46:41.683908843 +0100
-@@ -9267,10 +9267,11 @@
-
+--- ./org/gtk/gtkwindow.c 2018-01-15 14:21:38.000000000 +0100
++++ ./mod/gtk/gtkwindow.c 2018-05-30 02:00:46.846359548 +0200
+@@ -4161,10 +4161,12 @@
+ GtkWindow *self)
+ {
+ const gchar *title;
+
+ title = gtk_header_bar_get_title (titlebar);
++ if (gtk_header_bar_get_subtitle (titlebar))
++ title = g_strconcat (title, " — ", gtk_header_bar_get_subtitle (titlebar), NULL);
+ gtk_window_set_title_internal (self, title, FALSE);
+ }
+
+ /**
+ * gtk_window_set_titlebar:
+@@ -9274,10 +9276,11 @@
+
static void
gtk_window_do_popup (GtkWindow *window,
GdkEventButton *event)
{
-+ if (g_getenv ("GTK_CSD") == FALSE) return;
++ if (!window->priv->client_decorated) return;
if (!gdk_window_show_window_menu (_gtk_widget_get_window (GTK_WIDGET (window)),
(GdkEvent *) event))
gtk_window_do_popup_fallback (window, event);
}
-
+
diff --git a/csd__disabled-by-default.patch b/csd__disabled-by-default.patch
index e04178216748..f24ddbd2f8e8 100644
--- a/csd__disabled-by-default.patch
+++ b/csd__disabled-by-default.patch
@@ -1,16 +1,22 @@
diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
---- ./org/gtk/gtkwindow.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkwindow.c 2017-10-30 21:04:21.086937922 +0100
-@@ -4147,11 +4147,11 @@
- else
+--- ./org/gtk/gtkwindow.c 2018-01-15 14:21:38.000000000 +0100
++++ ./mod/gtk/gtkwindow.c 2018-05-29 10:39:33.013711354 +0200
+@@ -4151,10 +4151,18 @@
{
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "solid-csd");
}
-
-- priv->client_decorated = TRUE;
-+ priv->client_decorated = (g_getenv ("GTK_CSD") != FALSE);
+
+ priv->client_decorated = TRUE;
++#ifdef GDK_WINDOWING_X11
++ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (widget)) && g_getenv("GTK_CSD") == FALSE)
++ {
++ gtk_style_context_remove_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
++ gtk_style_context_remove_class (gtk_widget_get_style_context (widget), "solid-csd");
++ priv->client_decorated = FALSE;
++ }
++#endif
}
-
+
static void
on_titlebar_title_notify (GtkHeaderBar *titlebar,
GParamSpec *pspec,
diff --git a/csd__headerbar-title.patch b/csd__headerbar-title.patch
deleted file mode 100644
index 05d8802937d4..000000000000
--- a/csd__headerbar-title.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --color -U 5 -r -Z -B ./org/gtk/gtkheaderbar.c ./mod/gtk/gtkheaderbar.c
---- ./org/gtk/gtkheaderbar.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkheaderbar.c 2017-10-30 21:12:42.800296113 +0100
-@@ -572,10 +572,11 @@
- }
-
- static void
- construct_label_box (GtkHeaderBar *bar)
- {
-+ if (g_getenv ("GTK_CSD") == FALSE) return;
- GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar);
-
- g_assert (priv->label_box == NULL);
-
- priv->label_box = create_title_box (priv->title,
-@@ -1355,10 +1356,11 @@
- }
-
- gtk_widget_set_visible (priv->subtitle_sizing_label, priv->has_subtitle || (priv->subtitle && priv->subtitle[0]));
-
- g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SUBTITLE]);
-+ g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_TITLE]);
- }
-
- /**
- * gtk_header_bar_get_subtitle:
- * @bar: a #GtkHeaderBar
-diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
---- ./org/gtk/gtkwindow.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkwindow.c 2017-10-30 21:13:30.050298455 +0100
-@@ -4158,10 +4158,12 @@
- GtkWindow *self)
- {
- const gchar *title;
-
- title = gtk_header_bar_get_title (titlebar);
-+ if (gtk_header_bar_get_subtitle (titlebar))
-+ title = g_strconcat (title, " — ", gtk_header_bar_get_subtitle (titlebar), NULL);
- gtk_window_set_title_internal (self, title, FALSE);
- }
-
- /**
- * gtk_window_set_titlebar:
diff --git a/csd__server-side-shadow.patch b/csd__server-side-shadow.patch
index 13a385db69f6..dec7c9fbd5d1 100644
--- a/csd__server-side-shadow.patch
+++ b/csd__server-side-shadow.patch
@@ -1,15 +1,16 @@
diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
---- ./org/gtk/gtkwindow.c 2017-10-27 22:06:52.000000000 +0200
-+++ ./mod/gtk/gtkwindow.c 2017-10-30 21:15:37.183638087 +0100
-@@ -4087,10 +4087,11 @@
- }
-
- static gboolean
- gtk_window_supports_client_shadow (GtkWindow *window)
- {
-+ if (g_strcmp0 (g_getenv("GTK_CSD"), "1") != 0) return FALSE;
- GdkDisplay *display;
- GdkScreen *screen;
- GdkVisual *visual;
-
- screen = _gtk_window_get_screen (window);
+--- ./org/gtk/gtkwindow.c 2018-01-15 14:21:38.000000000 +0100
++++ ./mod/gtk/gtkwindow.c 2018-05-30 01:00:23.948990000 +0200
+@@ -4100,10 +4100,12 @@
+ display = gdk_screen_get_display (screen);
+
+ #ifdef GDK_WINDOWING_X11
+ if (GDK_IS_X11_DISPLAY (display))
+ {
++ if (g_strcmp0 (g_getenv ("GTK_CSD"), "1") != 0)
++ return FALSE;
+ if (!gdk_screen_is_composited (screen))
+ return FALSE;
+
+ if (!gdk_x11_screen_supports_net_wm_hint (screen, gdk_atom_intern_static_string ("_GTK_FRAME_EXTENTS")))
+ return FALSE; \ No newline at end of file
diff --git a/fixes__window-background.patch b/fixes__window-background.patch
new file mode 100644
index 000000000000..7d1a8d78ed17
--- /dev/null
+++ b/fixes__window-background.patch
@@ -0,0 +1,16 @@
+diff --color -U 5 -r -Z -B ./org/gtk/gtkwindow.c ./mod/gtk/gtkwindow.c
+--- ./org/gtk/gtkwindow.c 2017-10-27 22:06:52.000000000 +0200
++++ ./mod/gtk/gtkwindow.c 2017-10-30 21:27:43.370340735 +0100
+@@ -7428,10 +7428,12 @@
+ }
+
+ gtk_widget_set_window (widget, gdk_window);
+ gtk_widget_register_window (widget, gdk_window);
+ gtk_widget_set_realized (widget, TRUE);
++ if (!gdk_screen_is_composited (priv->screen) && !gtk_widget_get_app_paintable (widget))
++ gtk_style_context_set_background (gtk_widget_get_style_context (widget), gdk_window);
+
+ attributes.x = allocation.x;
+ attributes.y = allocation.y;
+ attributes.width = allocation.width;
+ attributes.height = allocation.height;
diff --git a/default-settings.patch b/other__default-settings.patch
index 8558ee6bafd3..8558ee6bafd3 100644
--- a/default-settings.patch
+++ b/other__default-settings.patch
diff --git a/smaller-adwaita.css b/smaller-adwaita.css
index 3f866b06f079..1b1f050b3dfc 100644
--- a/smaller-adwaita.css
+++ b/smaller-adwaita.css
@@ -79,11 +79,9 @@ messagedialog > box {
messagedialog buttonbox {
margin-top: -17px;
}
-.background:not(.tiled):not(.maximized):not(.solid-csd) .titlebar:backdrop,
-.background:not(.tiled):not(.maximized):not(.solid-csd) .titlebar,
-.titlebar:not(headerbar),
-headerbar {
- background-image: none;
+.background:not(.csd):not(.solid-csd) .titlebar:not(.default-decoration),
+.background:not(.csd):not(.solid-csd) .titlebar:not(.default-decoration) headerbar {
+ background: inherit;
}
entry undershoot.left,
entry undershoot.right,