diff options
author | Tomasz Gąsior | 2018-05-31 17:20:12 +0200 |
---|---|---|
committer | Tomasz Gąsior | 2018-05-31 17:20:12 +0200 |
commit | 02cef46f58dcc26f5265e41f4614ffd39d44c259 (patch) | |
tree | 447b69f7c17881116a448374350f35e28843ab80 | |
parent | 8dc7c51dea264a8d2c1bd8c7e8b2e1623b7602ed (diff) | |
download | aur-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-- | .SRCINFO | 25 | ||||
-rw-r--r-- | PKGBUILD | 26 | ||||
-rw-r--r-- | README.md | 19 | ||||
-rw-r--r-- | appearance__disable-backdrop.patch | 8 | ||||
-rw-r--r-- | csd__clean-headerbar.patch | 89 | ||||
-rw-r--r-- | csd__disabled-by-default.patch | 22 | ||||
-rw-r--r-- | csd__headerbar-title.patch | 43 | ||||
-rw-r--r-- | csd__server-side-shadow.patch | 29 | ||||
-rw-r--r-- | fixes__window-background.patch | 16 | ||||
-rw-r--r-- | other__default-settings.patch (renamed from default-settings.patch) | 0 | ||||
-rw-r--r-- | smaller-adwaita.css | 8 |
11 files changed, 157 insertions, 128 deletions
@@ -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 @@ -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, |