Compare commits

...

No commits in common. "c9-beta" and "c8" have entirely different histories.
c9-beta ... c8

21 changed files with 1085 additions and 1281 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gtk+-3.24.31.tar.xz SOURCES/gtk+-3.22.30.tar.xz

View File

@ -1 +1 @@
4ff8fc4b9e42693aa661bb6e54089014146209b0 SOURCES/gtk+-3.24.31.tar.xz 1be769c97b4dac9221d63f62f61ef724c55a14a3 SOURCES/gtk+-3.22.30.tar.xz

View File

@ -0,0 +1,79 @@
From 044383fe4533c59a0bbd58c977ed2ba5fb5862b8 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Fri, 31 May 2019 11:46:19 -0400
Subject: [PATCH 1/2] Add a gtk-overlay-scrolling setting
This is in preparation for letting user opt out of
overlay scrolling in the control-center.
---
gdk/wayland/gdkscreen-wayland.c | 2 +-
gdk/x11/gdksettings.c | 1 +
gtk/gtksettings.c | 21 ++++++++++++++++++++-
3 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c
index 6aff3a5a1a..5e156072f2 100644
--- a/gdk/wayland/gdkscreen-wayland.c
+++ b/gdk/wayland/gdkscreen-wayland.c
@@ -502,6 +502,7 @@ static TranslationEntry translations[] = {
{ FALSE, "org.gnome.desktop.interface", "gtk-im-module", "gtk-im-module", G_TYPE_STRING, { .s = "simple" } },
{ FALSE, "org.gnome.desktop.interface", "enable-animations", "gtk-enable-animations", G_TYPE_BOOLEAN, { .b = TRUE } },
{ FALSE, "org.gnome.desktop.interface", "gtk-enable-primary-paste", "gtk-enable-primary-paste", G_TYPE_BOOLEAN, { .b = TRUE } },
+ { FALSE, "org.gnome.desktop.interface", "overlay-scrolling", "gtk-overlay-scrolling", G_TYPE_BOOLEAN, { .b = TRUE } },
{ FALSE, "org.gnome.settings-daemon.peripherals.mouse", "double-click", "gtk-double-click-time", G_TYPE_INT, { .i = 400 } },
{ FALSE, "org.gnome.settings-daemon.peripherals.mouse", "drag-threshold", "gtk-dnd-drag-threshold", G_TYPE_INT, {.i = 8 } },
{ FALSE, "org.gnome.desktop.sound", "theme-name", "gtk-sound-theme-name", G_TYPE_STRING, { .s = "freedesktop" } },
diff --git a/gdk/x11/gdksettings.c b/gdk/x11/gdksettings.c
index f8bb6d896b..869c239b18 100644
--- a/gdk/x11/gdksettings.c
+++ b/gdk/x11/gdksettings.c
@@ -69,6 +69,7 @@ static const struct {
{"Gtk/RecentFilesMaxAge", "gtk-recent-files-max-age"},
{"Gtk/RecentFilesEnabled", "gtk-recent-files-enabled"},
{"Gtk/KeynavUseCaret", "gtk-keynav-use-caret"},
+ {"Gtk/OverlayScrolling", "gtk-overlay-scrolling"},
/* These are here in order to be recognized, but are not sent to
gtk as they are handled internally by gdk: */
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 571ae11cd4..b83d9d5561 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -224,7 +224,8 @@ enum {
PROP_ENABLE_PRIMARY_PASTE,
PROP_RECENT_FILES_ENABLED,
PROP_LONG_PRESS_TIME,
- PROP_KEYNAV_USE_CARET
+ PROP_KEYNAV_USE_CARET,
+ PROP_OVERLAY_SCROLLING
};
/* --- prototypes --- */
@@ -1767,6 +1768,24 @@ gtk_settings_class_init (GtkSettingsClass *class)
GTK_PARAM_READWRITE),
NULL);
g_assert (result == PROP_KEYNAV_USE_CARET);
+
+ /**
+ * GtkSettings:gtk-overlay-scrolling:
+ *
+ * Whether scrolled windows may use overlayed scrolling indicators.
+ * If this is set to %FALSE, scrolled windows will have permanent
+ * scrollbars.
+ *
+ * Since: 3.24.9
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-overlay-scrolling",
+ P_("Whether to use overlay scrollbars"),
+ P_("Whether to use overlay scrollbars"),
+ TRUE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_OVERLAY_SCROLLING);
}
static void
--
2.23.0

View File

@ -0,0 +1,29 @@
From abcc4773173ed8becb822971edad3f8d14a7a482 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Mon, 21 May 2018 17:15:41 -0400
Subject: [PATCH] Remove the "without parent" warning
We've had it for a long time, and it hasn't really made
a difference. And I don't think we are prepared to turn
this into a hard error. So just drop it.
---
gtk/gtkdialog.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 273c370935..0ef0f08b24 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -776,9 +776,6 @@ gtk_dialog_map (GtkWidget *widget)
GtkWindow *window = GTK_WINDOW (widget);
GtkDialog *dialog = GTK_DIALOG (widget);
- if (gtk_window_get_transient_for (window) == NULL)
- g_message ("GtkDialog mapped without a transient parent. This is discouraged.");
-
GTK_WIDGET_CLASS (gtk_dialog_parent_class)->map (widget);
focus = gtk_window_get_focus (window);
--
2.37.0

View File

@ -0,0 +1,41 @@
From 6b91ab848b86aa7968bb421f2f3f30b1c8ad6ba2 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Mon, 10 Dec 2018 17:05:53 +0100
Subject: [PATCH] a11y: Check X11 display at runtime
`gtk_widget_accessible_grab_focus()` code checks that X11 isenabled at
build time and uses X11 specific functions such as
`gdk_x11_get_server_time()` regardless of the actual backend being used.
Check that we are using an X11 display when X11 is backend enabled, so
we do not crash when running on Wayland
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1507
---
gtk/a11y/gtkwidgetaccessible.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c
index 2154e88239..b1b866c39c 100644
--- a/gtk/a11y/gtkwidgetaccessible.c
+++ b/gtk/a11y/gtkwidgetaccessible.c
@@ -648,11 +648,12 @@ gtk_widget_accessible_grab_focus (AtkComponent *component)
if (gtk_widget_is_toplevel (toplevel))
{
#ifdef GDK_WINDOWING_X11
- gtk_window_present_with_time (GTK_WINDOW (toplevel),
- gdk_x11_get_server_time (gtk_widget_get_window (widget)));
-#else
- gtk_window_present (GTK_WINDOW (toplevel));
+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (toplevel)))
+ gtk_window_present_with_time (GTK_WINDOW (toplevel),
+ gdk_x11_get_server_time (gtk_widget_get_window (widget)));
+ else
#endif
+ gtk_window_present (GTK_WINDOW (toplevel));
}
return TRUE;
}
--
2.19.2

View File

@ -0,0 +1,40 @@
From e91197a37f6841ada71204cd41f7d0459adffd9a Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Mon, 17 Dec 2018 14:13:05 +0100
Subject: [PATCH] a11y: Check display in `*grab_cell_focus()`
Calling the accessibility function `grab_focus()` on a `GtkCell` under
Wayland will cause the client to crash.
This is another case of `gdk_x11_get_server_time()` being called
regardless of the actual windowing backend used.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1507
---
gtk/a11y/gtktreeviewaccessible.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index efb9c9bc53..eec4480f29 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -1174,11 +1174,12 @@ gtk_tree_view_accessible_grab_cell_focus (GtkCellAccessibleParent *parent,
if (gtk_widget_is_toplevel (toplevel))
{
#ifdef GDK_WINDOWING_X11
- gtk_window_present_with_time (GTK_WINDOW (toplevel),
- gdk_x11_get_server_time (gtk_widget_get_window (widget)));
-#else
- gtk_window_present (GTK_WINDOW (toplevel));
+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (toplevel)))
+ gtk_window_present_with_time (GTK_WINDOW (toplevel),
+ gdk_x11_get_server_time (gtk_widget_get_window (widget)));
+ else
#endif
+ gtk_window_present (GTK_WINDOW (toplevel));
}
return TRUE;
--
2.20.1

View File

@ -0,0 +1,290 @@
From bc1c0584b76e19d5d65bfa2ae809f95113e53c83 Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
Date: Sun, 21 Jul 2019 23:15:00 +0200
Subject: [PATCH] a11y: Include window management buttons in headerbar
---
gtk/a11y/Makefile.inc | 2 +
gtk/a11y/gtkheaderbaraccessible.c | 87 +++++++++++++++++++++++++++++++
gtk/a11y/gtkheaderbaraccessible.h | 55 +++++++++++++++++++
gtk/gtkcontainerprivate.h | 1 +
gtk/gtkheaderbar.c | 3 +-
6 files changed, 149 insertions(+), 1 deletion(-)
create mode 100644 gtk/a11y/gtkheaderbaraccessible.c
create mode 100644 gtk/a11y/gtkheaderbaraccessible.h
diff --git a/gtk/a11y/Makefile.inc b/gtk/a11y/Makefile.inc
index 8529c7ae57..3ed6c5decd 100644
--- a/gtk/a11y/Makefile.inc
+++ b/gtk/a11y/Makefile.inc
@@ -14,6 +14,7 @@ a11y_h_sources = \
a11y/gtkflowboxaccessible.h \
a11y/gtkflowboxchildaccessible.h \
a11y/gtkframeaccessible.h \
+ a11y/gtkheaderbaraccessible.h \
a11y/gtkiconviewaccessible.h \
a11y/gtkimageaccessible.h \
a11y/gtkimagecellaccessible.h \
@@ -88,6 +89,7 @@ a11y_c_sources = \
a11y/gtkflowboxaccessible.c \
a11y/gtkflowboxchildaccessible.c \
a11y/gtkframeaccessible.c \
+ a11y/gtkheaderbaraccessible.c \
a11y/gtkiconviewaccessible.c \
a11y/gtkimageaccessible.c \
a11y/gtkimagecellaccessible.c \
--- a/gtk/Makefile.in
+++ b/gtk/Makefile.in
@@ -281,6 +281,7 @@
a11y/gtkcontainercellaccessible.c a11y/gtkentryaccessible.c \
a11y/gtkexpanderaccessible.c a11y/gtkflowboxaccessible.c \
a11y/gtkflowboxchildaccessible.c a11y/gtkframeaccessible.c \
+ a11y/gtkheaderbaraccessible.c \
a11y/gtkiconviewaccessible.c a11y/gtkimageaccessible.c \
a11y/gtkimagecellaccessible.c a11y/gtklabelaccessible.c \
a11y/gtklevelbaraccessible.c a11y/gtklinkbuttonaccessible.c \
@@ -487,6 +488,7 @@
a11y/libgtk_3_la-gtkflowboxaccessible.lo \
a11y/libgtk_3_la-gtkflowboxchildaccessible.lo \
a11y/libgtk_3_la-gtkframeaccessible.lo \
+ a11y/libgtk_3_la-gtkheaderbaraccessible.lo \
a11y/libgtk_3_la-gtkiconviewaccessible.lo \
a11y/libgtk_3_la-gtkimageaccessible.lo \
a11y/libgtk_3_la-gtkimagecellaccessible.lo \
@@ -1389,6 +1391,7 @@
a11y/gtkflowboxaccessible.h \
a11y/gtkflowboxchildaccessible.h \
a11y/gtkframeaccessible.h \
+ a11y/gtkheaderbaraccessible.h \
a11y/gtkiconviewaccessible.h \
a11y/gtkimageaccessible.h \
a11y/gtkimagecellaccessible.h \
@@ -1463,6 +1466,7 @@
a11y/gtkflowboxaccessible.c \
a11y/gtkflowboxchildaccessible.c \
a11y/gtkframeaccessible.c \
+ a11y/gtkheaderbaraccessible.c \
a11y/gtkiconviewaccessible.c \
a11y/gtkimageaccessible.c \
a11y/gtkimagecellaccessible.c \
@@ -2702,6 +2706,8 @@
a11y/$(DEPDIR)/$(am__dirstamp)
a11y/libgtk_3_la-gtkframeaccessible.lo: a11y/$(am__dirstamp) \
a11y/$(DEPDIR)/$(am__dirstamp)
+a11y/libgtk_3_la-gtkheaderbaraccessible.lo: a11y/$(am__dirstamp) \
+ a11y/$(DEPDIR)/$(am__dirstamp)
a11y/libgtk_3_la-gtkiconviewaccessible.lo: a11y/$(am__dirstamp) \
a11y/$(DEPDIR)/$(am__dirstamp)
a11y/libgtk_3_la-gtkimageaccessible.lo: a11y/$(am__dirstamp) \
@@ -3447,6 +3453,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkimageaccessible.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkimagecellaccessible.Plo@am__quote@
@@ -3705,6 +3712,13 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkframeaccessible.lo `test -f 'a11y/gtkframeaccessible.c' || echo '$(srcdir)/'`a11y/gtkframeaccessible.c
+a11y/libgtk_3_la-gtkheaderbaraccessible.lo: a11y/gtkheaderbaraccessible.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkheaderbaraccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Tpo -c -o a11y/libgtk_3_la-gtkheaderbaraccessible.lo `test -f 'a11y/gtkheaderbaraccessible.c' || echo '$(srcdir)/'`a11y/gtkheaderbaraccessible.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkheaderbaraccessible.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='a11y/gtkheaderbaraccessible.c' object='a11y/libgtk_3_la-gtkheaderbaraccessible.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkheaderbaraccessible.lo `test -f 'a11y/gtkheaderbaraccessible.c' || echo '$(srcdir)/'`a11y/gtkheaderbaraccessible.c
+
a11y/libgtk_3_la-gtkiconviewaccessible.lo: a11y/gtkiconviewaccessible.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkiconviewaccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Tpo -c -o a11y/libgtk_3_la-gtkiconviewaccessible.lo `test -f 'a11y/gtkiconviewaccessible.c' || echo '$(srcdir)/'`a11y/gtkiconviewaccessible.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkiconviewaccessible.Plo
diff --git a/gtk/a11y/gtkheaderbaraccessible.c b/gtk/a11y/gtkheaderbaraccessible.c
new file mode 100644
index 0000000000..3610ac0d1f
--- /dev/null
+++ b/gtk/a11y/gtkheaderbaraccessible.c
@@ -0,0 +1,87 @@
+/* GTK+ - accessibility implementations
+ * Copyright 2001, 2002, 2003 Sun Microsystems 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include "gtkheaderbaraccessible.h"
+
+#include "gtkcontainerprivate.h"
+
+G_DEFINE_TYPE (GtkHeaderBarAccessible, gtk_header_bar_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
+
+static void
+count_widget (GtkWidget *widget,
+ gint *count)
+{
+ (*count)++;
+}
+
+static gint
+gtk_header_bar_accessible_get_n_children (AtkObject* obj)
+{
+ GtkWidget *widget;
+ gint count = 0;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return 0;
+
+ gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) count_widget, &count);
+ return count;
+}
+
+static AtkObject *
+gtk_header_bar_accessible_ref_child (AtkObject *obj,
+ gint i)
+{
+ GList *children, *tmp_list;
+ AtkObject *accessible;
+ GtkWidget *widget;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget == NULL)
+ return NULL;
+
+ children = gtk_container_get_all_children (GTK_CONTAINER (widget));
+ tmp_list = g_list_nth (children, i);
+ if (!tmp_list)
+ {
+ g_list_free (children);
+ return NULL;
+ }
+ accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+
+ g_list_free (children);
+ g_object_ref (accessible);
+
+ return accessible;
+}
+
+static void
+gtk_header_bar_accessible_class_init (GtkHeaderBarAccessibleClass *klass)
+{
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+ class->get_n_children = gtk_header_bar_accessible_get_n_children;
+ class->ref_child = gtk_header_bar_accessible_ref_child;
+}
+
+static void
+gtk_header_bar_accessible_init (GtkHeaderBarAccessible *header_bar)
+{
+}
+
diff --git a/gtk/a11y/gtkheaderbaraccessible.h b/gtk/a11y/gtkheaderbaraccessible.h
new file mode 100644
index 0000000000..fca9428a94
--- /dev/null
+++ b/gtk/a11y/gtkheaderbaraccessible.h
@@ -0,0 +1,55 @@
+/* GTK+ - accessibility implementations
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GTK_HEADER_BAR_ACCESSIBLE_H__
+#define __GTK_HEADER_BAR_ACCESSIBLE_H__
+
+#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk-a11y.h> can be included directly."
+#endif
+
+#include <gtk/a11y/gtkcontaineraccessible.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_HEADER_BAR_ACCESSIBLE (gtk_header_bar_accessible_get_type ())
+#define GTK_HEADER_BAR_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessible))
+#define GTK_HEADER_BAR_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessibleClass))
+#define GTK_IS_HEADER_BAR_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE))
+#define GTK_IS_HEADER_BAR_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_HEADER_BAR_ACCESSIBLE))
+#define GTK_HEADER_BAR_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_HEADER_BAR_ACCESSIBLE, GtkHeaderBarAccessibleClass))
+
+typedef struct _GtkHeaderBarAccessible GtkHeaderBarAccessible;
+typedef struct _GtkHeaderBarAccessibleClass GtkHeaderBarAccessibleClass;
+typedef struct _GtkHeaderBarAccessiblePrivate GtkHeaderBarAccessiblePrivate;
+
+struct _GtkHeaderBarAccessible
+{
+ GtkContainerAccessible parent;
+};
+
+struct _GtkHeaderBarAccessibleClass
+{
+ GtkContainerAccessibleClass parent_class;
+};
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_header_bar_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_HEADER_BAR_ACCESSIBLE_H__ */
diff --git a/gtk/gtkcontainerprivate.h b/gtk/gtkcontainerprivate.h
index 7402a6676b..547e0295c3 100644
--- a/gtk/gtkcontainerprivate.h
+++ b/gtk/gtkcontainerprivate.h
@@ -42,6 +42,7 @@ void _gtk_container_maybe_start_idle_sizer (GtkContainer *container);
gboolean _gtk_container_get_border_width_set (GtkContainer *container);
void _gtk_container_set_border_width_set (GtkContainer *container,
gboolean border_width_set);
+GList * gtk_container_get_all_children (GtkContainer *container);
void gtk_container_get_children_clip (GtkContainer *container,
GtkAllocation *out_clip);
void gtk_container_set_default_resize_mode (GtkContainer *container,
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index dd7d2093c9..0ef94e3c84 100644
--- a/gtk/gtkheaderbar.c
+++ b/gtk/gtkheaderbar.c
@@ -30,7 +30,7 @@
#include "gtkwindowprivate.h"
#include "gtkwidgetprivate.h"
#include "gtkcontainerprivate.h"
-#include "a11y/gtkcontaineraccessible.h"
+#include "a11y/gtkheaderbaraccessible.h"
#include <string.h>
@@ -2118,6 +2118,7 @@ gtk_header_bar_class_init (GtkHeaderBarClass *class)
g_object_class_install_properties (object_class, LAST_PROP, header_bar_props);
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_HEADER_BAR_ACCESSIBLE);
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
gtk_widget_class_set_css_name (widget_class, "headerbar");
}
--
2.21.0

View File

@ -0,0 +1,72 @@
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 19090772201388c31bffba9f56db0e6e707f6093..a931d2bad5094aec76fc91c57792034357ed94d1 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -1900,10 +1900,19 @@ gtk_scrolled_window_measure (GtkCssGadget *gadget,
*/
if (policy_may_be_visible (priv->hscrollbar_policy))
{
- minimum_req.width = MAX (minimum_req.width, hscrollbar_requisition.width + sborder.left + sborder.right);
- natural_req.width = MAX (natural_req.width, hscrollbar_requisition.width + sborder.left + sborder.right);
+ int vscrollbar_extra_size;
- if (!priv->use_indicators && priv->hscrollbar_policy == GTK_POLICY_ALWAYS)
+ if (!priv->use_indicators && policy_may_be_visible (priv->vscrollbar_policy))
+ vscrollbar_extra_size = vscrollbar_requisition.width;
+ else
+ vscrollbar_extra_size = 0;
+
+ minimum_req.width = MAX (minimum_req.width,
+ hscrollbar_requisition.width + sborder.left + sborder.right + vscrollbar_extra_size);
+ natural_req.width = MAX (natural_req.width,
+ hscrollbar_requisition.width + sborder.left + sborder.right + vscrollbar_extra_size);
+
+ if (!priv->use_indicators)
{
minimum_req.height += scrollbar_spacing + hscrollbar_requisition.height;
natural_req.height += scrollbar_spacing + hscrollbar_requisition.height;
@@ -1912,10 +1921,19 @@ gtk_scrolled_window_measure (GtkCssGadget *gadget,
if (policy_may_be_visible (priv->vscrollbar_policy))
{
- minimum_req.height = MAX (minimum_req.height, vscrollbar_requisition.height + sborder.top + sborder.bottom);
- natural_req.height = MAX (natural_req.height, vscrollbar_requisition.height + sborder.top + sborder.bottom);
+ int hscrollbar_extra_size;
+
+ if (!priv->use_indicators && policy_may_be_visible (priv->hscrollbar_policy))
+ hscrollbar_extra_size = hscrollbar_requisition.height;
+ else
+ hscrollbar_extra_size = 0;
+
+ minimum_req.height = MAX (minimum_req.height,
+ vscrollbar_requisition.height + sborder.top + sborder.bottom + hscrollbar_extra_size);
+ natural_req.height = MAX (natural_req.height,
+ vscrollbar_requisition.height + sborder.top + sborder.bottom + hscrollbar_extra_size);
- if (!priv->use_indicators && priv->vscrollbar_policy == GTK_POLICY_ALWAYS)
+ if (!priv->use_indicators)
{
minimum_req.width += scrollbar_spacing + vscrollbar_requisition.width;
natural_req.width += scrollbar_spacing + vscrollbar_requisition.width;
diff --git a/testsuite/gtk/scrolledwindow.c b/testsuite/gtk/scrolledwindow.c
index c6093d8256e52071e00885d266d92b5bb7e664f7..e141fe35baa628592114e6cceebe8863b7b078dd 100644
--- a/testsuite/gtk/scrolledwindow.c
+++ b/testsuite/gtk/scrolledwindow.c
@@ -58,7 +58,7 @@ test_size (gboolean overlay,
/* If the relevant scrollbar is non-overlay and always shown, it is added
* to the preferred size. When comparing to the expected size, we need to
* to exclude that extra, as we are only interested in the content size */
- if (!overlay && policy == GTK_POLICY_ALWAYS)
+ if (!overlay)
{
GtkWidget *scrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scrolledwindow));
gtk_widget_get_preferred_width (scrollbar, &scrollbar_size, NULL);
@@ -87,7 +87,7 @@ test_size (gboolean overlay,
gtk_widget_get_preferred_height (box, &child_size, NULL);
}
- if (!overlay && policy == GTK_POLICY_ALWAYS)
+ if (!overlay)
{
GtkWidget *scrollbar = gtk_scrolled_window_get_hscrollbar (GTK_SCROLLED_WINDOW (scrolledwindow));
gtk_widget_get_preferred_height (scrollbar, &scrollbar_size, NULL);

View File

@ -0,0 +1,49 @@
From 8ce68a519414df141e3de7432ab4d55564e933a0 Mon Sep 17 00:00:00 2001
From: Philip Withnall <withnall@endlessm.com>
Date: Fri, 4 Oct 2019 18:25:34 +0100
Subject: [PATCH] =?UTF-8?q?gtklistbox:=20Only=20unparent=20header=20rows?=
=?UTF-8?q?=20if=20they=20haven=E2=80=99t=20been=20reused?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Its possible for code which uses a `GtkListBox` to reuse a single
header row, and move it around between rows. For example, this might
happen if the code has interactive widgets (like buttons) in the row,
and doesnt want to continually recreate them and reattach signals to
them whenever the row headers change.
Unfortunately, this was broken, as the old header widget was
unconditionally unparented, even if it had just been set as the header
for a different row in the same `GtkListBox`. This left it assigned as
a child widget in the `GtkListBox` (so it was iterated over by
`forall`), but without its parent widget set.
Fix that by only unparenting the header if it hasnt already been
assigned as the parent of a different row.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
---
gtk/gtklistbox.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c
index 36f9ec5246..db3ec5cbb8 100644
--- a/gtk/gtklistbox.c
+++ b/gtk/gtklistbox.c
@@ -2426,8 +2426,11 @@ gtk_list_box_update_header (GtkListBox *box,
priv->update_header_func_target);
if (old_header != ROW_PRIV (row)->header)
{
- if (old_header != NULL)
+ if (old_header != NULL &&
+ g_hash_table_lookup (priv->header_hash, old_header) == row)
{
+ /* Only unparent the @old_header if it hasnt been re-used as the
+ * header for a different row. */
gtk_widget_unparent (old_header);
g_hash_table_remove (priv->header_hash, old_header);
}
--
2.18.2

View File

@ -0,0 +1,70 @@
From b541ad48d1c7060e2d38205d4874675e27578b9b Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Mon, 19 Jul 2021 13:10:31 -0400
Subject: [PATCH] reftests: Enforce default settings
Set all settings to their default values, so we
are less dependent on the environment to be set
up just right. In particular, this fixes animations
being disabled when we happen to run in a vm.
---
testsuite/reftests/gtk-reftest.c | 36 ++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/testsuite/reftests/gtk-reftest.c b/testsuite/reftests/gtk-reftest.c
index 585e1c393d..1a51a9756b 100644
--- a/testsuite/reftests/gtk-reftest.c
+++ b/testsuite/reftests/gtk-reftest.c
@@ -368,6 +368,40 @@ add_test_for_file (GFile *file)
g_list_free_full (files, g_object_unref);
}
+static void
+enforce_default_settings (void)
+{
+ GtkSettings *settings;
+ GTypeClass *klass;
+ GParamSpec **pspecs;
+ guint n_pspecs;
+ int i;
+
+ settings = gtk_settings_get_default ();
+
+ klass = g_type_class_ref (G_OBJECT_TYPE (settings));
+
+ pspecs = g_object_class_list_properties (klass, &n_pspecs);
+ for (i = 0; i < n_pspecs; i++)
+ {
+ GParamSpec *pspec = pspecs[i];
+ const GValue *value;
+
+ if ((pspec->flags & G_PARAM_WRITABLE) == 0)
+ continue;
+
+ if (pspec->value_type == G_TYPE_HASH_TABLE)
+ continue;
+
+ value = g_param_spec_get_default_value (pspec);
+ g_object_set_property (settings, pspec->name, value);
+ }
+
+ g_free (pspecs);
+
+ g_type_class_unref (klass);
+}
+
int
main (int argc, char **argv)
{
@@ -382,6 +416,8 @@ main (int argc, char **argv)
if (!parse_command_line (&argc, &argv))
return 1;
+ enforce_default_settings ();
+
if (arg_base_dir)
basedir = arg_base_dir;
else
--
2.31.1

View File

@ -1,683 +0,0 @@
From 29b39c35dcf0b031df644e999e03cadfed36e943 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Thu, 2 May 2024 09:40:28 -0400
Subject: [PATCH] theme: Reduce the height of titlebars
The height of our titlebars is geared towards headerbars that can
host controls. For a traditional title-only titlebar, a smaller
footprint is sufficient and frees up some valuable vertical space.
---
gtk/theme/Adwaita/_common.scss | 8 +-
gtk/theme/Adwaita/gtk-contained-dark.css | 112 +++++++++++-----------
gtk/theme/Adwaita/gtk-contained.css | 114 ++++++++++++-----------
3 files changed, 119 insertions(+), 115 deletions(-)
diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss
index b9db6041d5..c4b0243a36 100644
--- a/gtk/theme/Adwaita/_common.scss
+++ b/gtk/theme/Adwaita/_common.scss
@@ -1757,12 +1757,12 @@ headerbar {
}
&.default-decoration {
- min-height: 28px;
- padding: 4px;
+ padding: 0px 2px;
+ min-height: 0;
button.titlebutton {
- min-height: 26px;
- min-width: 26px;
+ min-height: 18px;
+ min-width: 18px;
margin: 0;
padding: 0;
}
diff --git a/gtk/theme/Adwaita/gtk-contained-dark.css b/gtk/theme/Adwaita/gtk-contained-dark.css
index 32b7fb969e..592fc88996 100644
--- a/gtk/theme/Adwaita/gtk-contained-dark.css
+++ b/gtk/theme/Adwaita/gtk-contained-dark.css
@@ -19,7 +19,7 @@
.gtkstyle-fallback:selected { color: #ffffff; background-color: #15539e; }
-.view, iconview, .view text, iconview text, textview text { color: white; background-color: #2d2d2d; }
+.view, iconview, .view text, iconview text, textview text { color: white; caret-color: #f7f7f7; background-color: #2d2d2d; }
.view:backdrop, iconview:backdrop, .view text:backdrop, iconview text:backdrop, textview text:backdrop { color: #d6d6d6; background-color: #303030; }
@@ -162,7 +162,7 @@ spinbutton:not(.vertical) progress:backdrop, entry progress:backdrop { backgroun
.linked:not(.vertical) > spinbutton:focus:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:focus:not(.vertical) + button, .linked:not(.vertical) > spinbutton:focus:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:focus:not(.vertical) + entry, .linked:not(.vertical) > entry:focus + button, .linked:not(.vertical) > entry:focus + combobox > box > button.combo, .linked:not(.vertical) > entry:focus + spinbutton:not(.vertical), .linked:not(.vertical) > entry:focus + entry { border-left-color: #030c17; }
-.linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + button, .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + entry, .linked:not(.vertical) > entry.error:focus + button, .linked:not(.vertical) > entry.error:focus + combobox > box > button.combo, .linked:not(.vertical) > entry.error:focus + spinbutton:not(.vertical), .linked:not(.vertical) > entry.error:focus + entry { border-left-color: #1a0000; }
+.linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + button, .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + entry, .linked:not(.vertical) > entry:focus.error + button, .linked:not(.vertical) > entry:focus.error + combobox > box > button.combo, .linked:not(.vertical) > entry:focus.error + spinbutton:not(.vertical), .linked:not(.vertical) > entry:focus.error + entry { border-left-color: #1a0000; }
.linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + entry, .linked:not(.vertical) > entry:drop(active) + button, .linked:not(.vertical) > entry:drop(active) + combobox > box > button.combo, .linked:not(.vertical) > entry:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > entry:drop(active) + entry { border-left-color: #4e9a06; }
@@ -174,13 +174,13 @@ spinbutton:not(.vertical) progress:backdrop, entry progress:backdrop { backgroun
.linked.vertical > spinbutton:not(.vertical) + spinbutton:focus:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:focus:not(:only-child), .linked.vertical > entry + spinbutton:focus:not(:only-child):not(.vertical), .linked.vertical > entry + entry:focus:not(:only-child) { border-top-color: #030c17; }
-.linked.vertical > spinbutton:not(.vertical) + spinbutton.error:focus:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry.error:focus:not(:only-child), .linked.vertical > entry + spinbutton.error:focus:not(:only-child):not(.vertical), .linked.vertical > entry + entry.error:focus:not(:only-child) { border-top-color: #1a0000; }
+.linked.vertical > spinbutton:not(.vertical) + spinbutton:focus.error:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:focus.error:not(:only-child), .linked.vertical > entry + spinbutton:focus.error:not(:only-child):not(.vertical), .linked.vertical > entry + entry:focus.error:not(:only-child) { border-top-color: #1a0000; }
.linked.vertical > spinbutton:not(.vertical) + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:drop(active):not(:only-child), .linked.vertical > entry + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > entry + entry:drop(active):not(:only-child) { border-top-color: #4e9a06; }
.linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:focus:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:focus:not(:only-child) + entry, .linked.vertical > entry:focus:not(:only-child) + button, .linked.vertical > entry:focus:not(:only-child) + combobox > box > button.combo { border-top-color: #030c17; }
-.linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry.error:focus:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry.error:focus:not(:only-child) + entry, .linked.vertical > entry.error:focus:not(:only-child) + button, .linked.vertical > entry.error:focus:not(:only-child) + combobox > box > button.combo { border-top-color: #1a0000; }
+.linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:focus.error:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:focus.error:not(:only-child) + entry, .linked.vertical > entry:focus.error:not(:only-child) + button, .linked.vertical > entry:focus.error:not(:only-child) + combobox > box > button.combo { border-top-color: #1a0000; }
.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:drop(active):not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:drop(active):not(:only-child) + entry, .linked.vertical > entry:drop(active):not(:only-child) + button, .linked.vertical > entry:drop(active):not(:only-child) + combobox > box > button.combo { border-top-color: #4e9a06; }
@@ -224,13 +224,13 @@ notebook > header > tabs > arrow:hover, button:hover { color: #eeeeec; outline-c
notebook > header > tabs > arrow:active, notebook > header > tabs > arrow:checked, button:active, button:checked { color: #eeeeec; outline-color: rgba(238, 238, 236, 0.3); border-color: #1b1b1b; background-image: image(#1e1e1e); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; transition-duration: 50ms; }
-notebook > header > tabs > arrow:backdrop, button.flat:backdrop, button:backdrop { color: #919190; border-color: #202020; background-image: image(#353535); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); transition: 200ms ease-out; -gtk-icon-effect: none; }
+notebook > header > tabs > arrow:backdrop, button:backdrop.flat, button:backdrop { color: #919190; border-color: #202020; background-image: image(#353535); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); transition: 200ms ease-out; -gtk-icon-effect: none; }
-notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, button.flat:backdrop:active, button.flat:backdrop:checked, button:backdrop:active, button:backdrop:checked { color: #919190; border-color: #202020; background-image: image(#2a2a2a); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, button:backdrop.flat:active, button:backdrop.flat:checked, button:backdrop:active, button:backdrop:checked { color: #919190; border-color: #202020; background-image: image(#2a2a2a); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
-notebook > header > tabs > arrow:backdrop:disabled, button.flat:backdrop:disabled, button:backdrop:disabled { color: #5b5b5b; border-color: #202020; background-image: image(#323232); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:disabled, button:backdrop.flat:disabled, button:backdrop:disabled { color: #5b5b5b; border-color: #202020; background-image: image(#323232); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
-notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, button.flat:backdrop:disabled:active, button.flat:backdrop:disabled:checked, button:backdrop:disabled:active, button:backdrop:disabled:checked { color: #5b5b5b; border-color: #202020; background-image: image(#2a2a2a); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, button:backdrop.flat:disabled:active, button:backdrop.flat:disabled:checked, button:backdrop:disabled:active, button:backdrop:disabled:checked { color: #5b5b5b; border-color: #202020; background-image: image(#2a2a2a); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
button.titlebutton:backdrop, button.sidebar-button:backdrop, notebook > header > tabs > arrow:backdrop, button.titlebutton:disabled, button.sidebar-button:disabled, notebook > header > tabs > arrow:disabled, button.flat:backdrop, button.flat:disabled, button.flat:backdrop:disabled { border-color: transparent; background-color: transparent; background-image: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; }
@@ -598,11 +598,11 @@ searchbar > revealer > box { margin: -6px; padding: 6px; }
.selection-mode .titlebar:not(headerbar) button:active, .selection-mode .titlebar:not(headerbar) button:checked, .selection-mode.titlebar:not(headerbar) button:active, .selection-mode.titlebar:not(headerbar) button:checked, .selection-mode headerbar button:active, .selection-mode headerbar button:checked, .selection-mode headerbar button.toggle:checked, .selection-mode headerbar button.toggle:active, headerbar.selection-mode button:active, headerbar.selection-mode button:checked, headerbar.selection-mode button.toggle:checked, headerbar.selection-mode button.toggle:active { color: #ffffff; outline-color: rgba(255, 255, 255, 0.3); border-color: #0f3b71; background-image: image(#103e75); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; }
-.selection-mode .titlebar:not(headerbar) button:backdrop, .selection-mode.titlebar:not(headerbar) button:backdrop, .selection-mode headerbar button.flat:backdrop, .selection-mode headerbar button:backdrop, headerbar.selection-mode button.flat:backdrop, headerbar.selection-mode button:backdrop { color: #d0ddec; border-color: #0f3b71; background-image: image(#15539e); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); -gtk-icon-effect: none; border-color: #030c17; }
+.selection-mode .titlebar:not(headerbar) button:backdrop, .selection-mode.titlebar:not(headerbar) button:backdrop, .selection-mode headerbar button:backdrop.flat, .selection-mode headerbar button:backdrop, headerbar.selection-mode button:backdrop.flat, headerbar.selection-mode button:backdrop { color: #d0ddec; border-color: #0f3b71; background-image: image(#15539e); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); -gtk-icon-effect: none; border-color: #030c17; }
-.selection-mode .titlebar:not(headerbar) button:backdrop:active, .selection-mode .titlebar:not(headerbar) button:backdrop:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:active, .selection-mode.titlebar:not(headerbar) button:backdrop:checked, .selection-mode headerbar button.flat:backdrop:active, .selection-mode headerbar button.flat:backdrop:checked, .selection-mode headerbar button:backdrop:active, .selection-mode headerbar button:backdrop:checked, headerbar.selection-mode button.flat:backdrop:active, headerbar.selection-mode button.flat:backdrop:checked, headerbar.selection-mode button:backdrop:active, headerbar.selection-mode button:backdrop:checked { color: #d0dae5; border-color: #0f3b71; background-image: image(#16447c); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #030c17; }
+.selection-mode .titlebar:not(headerbar) button:backdrop:active, .selection-mode .titlebar:not(headerbar) button:backdrop:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:active, .selection-mode.titlebar:not(headerbar) button:backdrop:checked, .selection-mode headerbar button:backdrop.flat:active, .selection-mode headerbar button:backdrop.flat:checked, .selection-mode headerbar button:backdrop:active, .selection-mode headerbar button:backdrop:checked, headerbar.selection-mode button:backdrop.flat:active, headerbar.selection-mode button:backdrop.flat:checked, headerbar.selection-mode button:backdrop:active, headerbar.selection-mode button:backdrop:checked { color: #d0dae5; border-color: #0f3b71; background-image: image(#16447c); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #030c17; }
-.selection-mode .titlebar:not(headerbar) button:backdrop:disabled, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled, .selection-mode headerbar button.flat:backdrop:disabled, .selection-mode headerbar button:backdrop:disabled, headerbar.selection-mode button.flat:backdrop:disabled, headerbar.selection-mode button:backdrop:disabled { color: #6a8bb5; border-color: #0f3b71; background-image: image(#194d8d); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #030c17; }
+.selection-mode .titlebar:not(headerbar) button:backdrop:disabled, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled, .selection-mode headerbar button:backdrop.flat:disabled, .selection-mode headerbar button:backdrop:disabled, headerbar.selection-mode button:backdrop.flat:disabled, headerbar.selection-mode button:backdrop:disabled { color: #6a8bb5; border-color: #0f3b71; background-image: image(#194d8d); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #030c17; }
.selection-mode .titlebar:not(headerbar) button:backdrop:disabled:active, .selection-mode .titlebar:not(headerbar) button:backdrop:disabled:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled:active, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled:checked, .selection-mode headerbar button:backdrop:disabled:active, .selection-mode headerbar button:backdrop:disabled:checked, headerbar.selection-mode button:backdrop:disabled:active, headerbar.selection-mode button:backdrop:disabled:checked { color: #6885aa; border-color: #0f3b71; background-image: image(#16447c); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #030c17; }
@@ -632,9 +632,9 @@ searchbar > revealer > box { margin: -6px; padding: 6px; }
.tiled .titlebar:not(headerbar), .tiled-top .titlebar:not(headerbar), .tiled-right .titlebar:not(headerbar), .tiled-bottom .titlebar:not(headerbar), .tiled-left .titlebar:not(headerbar), .maximized .titlebar:not(headerbar), .fullscreen .titlebar:not(headerbar), .tiled headerbar, .tiled-top headerbar, .tiled-right headerbar, .tiled-bottom headerbar, .tiled-left headerbar, .maximized headerbar, .fullscreen headerbar { border-radius: 0; }
-.default-decoration.titlebar:not(headerbar), headerbar.default-decoration { min-height: 28px; padding: 4px; }
+.default-decoration.titlebar:not(headerbar), headerbar.default-decoration { padding: 0px 2px; min-height: 0; }
-.default-decoration.titlebar:not(headerbar) button.titlebutton, headerbar.default-decoration button.titlebutton { min-height: 26px; min-width: 26px; margin: 0; padding: 0; }
+.default-decoration.titlebar:not(headerbar) button.titlebutton, headerbar.default-decoration button.titlebutton { min-height: 18px; min-width: 18px; margin: 0; padding: 0; }
.titlebar:not(headerbar) separator.titlebutton, headerbar separator.titlebutton { opacity: 0; }
@@ -704,9 +704,9 @@ treeview.view:backdrop { border-left-color: #636362; border-top: #353535; }
treeview.view:drop(active) { border-style: solid none; border-width: 1px; border-color: #030c17; }
-treeview.view.after:drop(active) { border-top-style: none; }
+treeview.view:drop(active).after { border-top-style: none; }
-treeview.view.before:drop(active) { border-bottom-style: none; }
+treeview.view:drop(active).before { border-bottom-style: none; }
treeview.view.expander { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); color: silver; }
@@ -911,21 +911,21 @@ notebook > header tab { min-height: 30px; min-width: 30px; padding: 3px 12px; ou
notebook > header tab:hover { color: #eeeeec; background-color: #2b2b2b; }
-notebook > header tab.reorderable-page:hover { border-color: rgba(27, 27, 27, 0.3); background-color: rgba(53, 53, 53, 0.2); }
+notebook > header tab:hover.reorderable-page { border-color: rgba(27, 27, 27, 0.3); background-color: rgba(53, 53, 53, 0.2); }
notebook > header tab:backdrop { color: #6c6c6c; }
-notebook > header tab.reorderable-page:backdrop { border-color: transparent; background-color: transparent; }
+notebook > header tab:backdrop.reorderable-page { border-color: transparent; background-color: transparent; }
notebook > header tab:checked { color: #eeeeec; }
-notebook > header tab.reorderable-page:checked { border-color: rgba(27, 27, 27, 0.5); background-color: rgba(53, 53, 53, 0.5); }
+notebook > header tab:checked.reorderable-page { border-color: rgba(27, 27, 27, 0.5); background-color: rgba(53, 53, 53, 0.5); }
-notebook > header tab.reorderable-page:checked:hover { background-color: rgba(53, 53, 53, 0.7); }
+notebook > header tab:checked.reorderable-page:hover { background-color: rgba(53, 53, 53, 0.7); }
notebook > header tab:backdrop:checked { color: #919190; }
-notebook > header tab.reorderable-page:backdrop:checked { border-color: #202020; background-color: #353535; }
+notebook > header tab:backdrop:checked.reorderable-page { border-color: #202020; background-color: #353535; }
notebook > header tab button.flat { padding: 0; margin-top: 4px; margin-bottom: 4px; min-width: 20px; min-height: 20px; }
@@ -1006,13 +1006,13 @@ scrollbar.overlay-indicator:not(.dragging):not(.hovering) slider { margin: 0; mi
scrollbar.overlay-indicator:not(.dragging):not(.hovering) button { min-width: 5px; min-height: 5px; background-color: #eeeeec; background-clip: padding-box; border-radius: 100%; border: 1px solid black; -gtk-icon-source: none; }
-scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) slider { margin: 0 2px; min-width: 40px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal slider { margin: 0 2px; min-width: 40px; }
-scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) button { margin: 1px 2px; min-width: 5px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal button { margin: 1px 2px; min-width: 5px; }
-scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) slider { margin: 2px 0; min-height: 40px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical slider { margin: 2px 0; min-height: 40px; }
-scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) button { margin: 2px 1px; min-height: 5px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical button { margin: 2px 1px; min-height: 5px; }
scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering { opacity: 0.8; }
@@ -1285,99 +1285,99 @@ scale.vertical.fine-tune indicator { min-width: 3px; }
scale.horizontal.marks-before:not(.marks-after) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-above-insensitive-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-backdrop-dark.png"), url("assets/slider-horz-scale-has-marks-above-backdrop-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-backdrop-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-above-backdrop-insensitive-dark@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-dark.png"), url("assets/slider-horz-scale-has-marks-below-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover-dark.png"), url("assets/slider-horz-scale-has-marks-below-hover-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active-dark.png"), url("assets/slider-horz-scale-has-marks-below-active-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-below-insensitive-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-backdrop-dark.png"), url("assets/slider-horz-scale-has-marks-below-backdrop-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-backdrop-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-below-backdrop-insensitive-dark@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.vertical.marks-before:not(.marks-after) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-dark.png"), url("assets/slider-vert-scale-has-marks-above-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover-dark.png"), url("assets/slider-vert-scale-has-marks-above-hover-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active-dark.png"), url("assets/slider-vert-scale-has-marks-above-active-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-above-insensitive-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-backdrop-dark.png"), url("assets/slider-vert-scale-has-marks-above-backdrop-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-backdrop-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-above-backdrop-insensitive-dark@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-after:not(.marks-before) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-dark.png"), url("assets/slider-vert-scale-has-marks-below-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover-dark.png"), url("assets/slider-vert-scale-has-marks-below-hover-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active-dark.png"), url("assets/slider-vert-scale-has-marks-below-active-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-below-insensitive-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-backdrop-dark.png"), url("assets/slider-vert-scale-has-marks-below-backdrop-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-backdrop-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-below-backdrop-insensitive-dark@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.color { min-height: 0; min-width: 0; }
@@ -1548,7 +1548,7 @@ row.activatable:backdrop:hover { background-color: transparent; }
row.activatable:selected:active { box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.5); }
-row.activatable.has-open-popup:selected, row.activatable:selected:hover { background-color: #2b62a6; }
+row.activatable:selected.has-open-popup, row.activatable:selected:hover { background-color: #2b62a6; }
row.activatable:selected:backdrop { background-color: #15539e; }
@@ -1619,9 +1619,9 @@ filechooserbutton:drop(active) { box-shadow: none; border-color: transparent; }
/*********** Sidebar * */
.sidebar { border-style: none; background-color: #313131; }
-stacksidebar.sidebar:dir(ltr) list, stacksidebar.sidebar.left list, stacksidebar.sidebar.left:dir(rtl) list, .sidebar:not(separator):dir(ltr), .sidebar.left:not(separator) { border-right: 1px solid #1b1b1b; border-left-style: none; }
+stacksidebar.sidebar:dir(ltr) list, stacksidebar.sidebar.left list, stacksidebar.sidebar.left:dir(rtl) list, .sidebar:not(separator):dir(ltr), .sidebar:not(separator).left { border-right: 1px solid #1b1b1b; border-left-style: none; }
-stacksidebar.sidebar:dir(rtl) list, stacksidebar.sidebar.right list, .sidebar:not(separator):dir(rtl), .sidebar.right:not(separator) { border-left: 1px solid #1b1b1b; border-right-style: none; }
+stacksidebar.sidebar:dir(rtl) list, stacksidebar.sidebar.right list, .sidebar:not(separator):dir(rtl), .sidebar:not(separator).right { border-left: 1px solid #1b1b1b; border-right-style: none; }
.sidebar:backdrop { background-color: #323232; border-color: #202020; transition: 200ms ease-out; }
@@ -1790,9 +1790,9 @@ colorswatch.light overlay:backdrop { color: rgba(0, 0, 0, 0.5); }
colorswatch:drop(active) { box-shadow: none; }
-colorswatch.light:drop(active) overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #1b1b1b, inset 0 0 0 1px #4e9a06; }
+colorswatch:drop(active).light overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #1b1b1b, inset 0 0 0 1px #4e9a06; }
-colorswatch.dark:drop(active) overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #1b1b1b, inset 0 0 0 1px #4e9a06; }
+colorswatch:drop(active).dark overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #1b1b1b, inset 0 0 0 1px #4e9a06; }
colorswatch overlay { border: 1px solid #1b1b1b; }
@@ -1850,6 +1850,8 @@ decoration:backdrop { box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(
.ssd decoration:backdrop { box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.75); }
+.ssd.maximized decoration, .ssd.maximized decoration:backdrop { box-shadow: none; }
+
.csd.popup decoration { border-radius: 5px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.65); }
tooltip.csd decoration { border-radius: 5px; box-shadow: none; }
@@ -1870,9 +1872,9 @@ button.titlebutton:backdrop { -gtk-icon-shadow: none; }
.selection-mode headerbar button.titlebutton:backdrop, .selection-mode .titlebar button.titlebutton:backdrop, headerbar.selection-mode button.titlebutton:backdrop, .titlebar.selection-mode button.titlebutton:backdrop { -gtk-icon-shadow: none; }
-.view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, .view text selection, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { background-color: #15539e; }
+.view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { background-color: #15539e; }
-label:selected, .selection-mode button.titlebutton, .view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, .view text selection, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { color: #ffffff; }
+label:selected, .selection-mode button.titlebutton, .view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { color: #ffffff; }
label:disabled selection, label:disabled:selected, .selection-mode button.titlebutton:disabled, .view:disabled:selected, textview text:disabled:selected:focus, .view text:disabled:selected, textview text:disabled:selected, .view text selection:disabled, textview text selection:disabled:focus, textview text selection:disabled, iconview:disabled:selected:focus, iconview:disabled:selected, iconview text selection:disabled:focus, iconview text selection:disabled, flowbox flowboxchild:disabled:selected, entry selection:disabled, modelbutton.flat:disabled:selected, .menuitem.button.flat:disabled:selected, spinbutton:not(.vertical) selection:disabled, treeview.view:disabled:selected, row:disabled:selected, calendar:disabled:selected { color: #8aa9ce; }
diff --git a/gtk/theme/Adwaita/gtk-contained.css b/gtk/theme/Adwaita/gtk-contained.css
index 729b1fc8f0..892a9e6b83 100644
--- a/gtk/theme/Adwaita/gtk-contained.css
+++ b/gtk/theme/Adwaita/gtk-contained.css
@@ -19,7 +19,7 @@
.gtkstyle-fallback:selected { color: #ffffff; background-color: #3584e4; }
-.view, iconview, .view text, iconview text, textview text { color: black; background-color: #ffffff; }
+.view, iconview, .view text, iconview text, textview text { color: black; caret-color: #0d0d0d; background-color: #ffffff; }
.view:backdrop, iconview:backdrop, .view text:backdrop, iconview text:backdrop, textview text:backdrop { color: #323232; background-color: #fcfcfc; }
@@ -162,7 +162,7 @@ spinbutton:not(.vertical) progress:backdrop, entry progress:backdrop { backgroun
.linked:not(.vertical) > spinbutton:focus:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:focus:not(.vertical) + button, .linked:not(.vertical) > spinbutton:focus:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:focus:not(.vertical) + entry, .linked:not(.vertical) > entry:focus + button, .linked:not(.vertical) > entry:focus + combobox > box > button.combo, .linked:not(.vertical) > entry:focus + spinbutton:not(.vertical), .linked:not(.vertical) > entry:focus + entry { border-left-color: #3584e4; }
-.linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + button, .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton.error:focus:not(.vertical) + entry, .linked:not(.vertical) > entry.error:focus + button, .linked:not(.vertical) > entry.error:focus + combobox > box > button.combo, .linked:not(.vertical) > entry.error:focus + spinbutton:not(.vertical), .linked:not(.vertical) > entry.error:focus + entry { border-left-color: #cc0000; }
+.linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + button, .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:focus.error:not(.vertical) + entry, .linked:not(.vertical) > entry:focus.error + button, .linked:not(.vertical) > entry:focus.error + combobox > box > button.combo, .linked:not(.vertical) > entry:focus.error + spinbutton:not(.vertical), .linked:not(.vertical) > entry:focus.error + entry { border-left-color: #cc0000; }
.linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + entry, .linked:not(.vertical) > entry:drop(active) + button, .linked:not(.vertical) > entry:drop(active) + combobox > box > button.combo, .linked:not(.vertical) > entry:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > entry:drop(active) + entry { border-left-color: #4e9a06; }
@@ -174,13 +174,13 @@ spinbutton:not(.vertical) progress:backdrop, entry progress:backdrop { backgroun
.linked.vertical > spinbutton:not(.vertical) + spinbutton:focus:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:focus:not(:only-child), .linked.vertical > entry + spinbutton:focus:not(:only-child):not(.vertical), .linked.vertical > entry + entry:focus:not(:only-child) { border-top-color: #3584e4; }
-.linked.vertical > spinbutton:not(.vertical) + spinbutton.error:focus:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry.error:focus:not(:only-child), .linked.vertical > entry + spinbutton.error:focus:not(:only-child):not(.vertical), .linked.vertical > entry + entry.error:focus:not(:only-child) { border-top-color: #cc0000; }
+.linked.vertical > spinbutton:not(.vertical) + spinbutton:focus.error:not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:focus.error:not(:only-child), .linked.vertical > entry + spinbutton:focus.error:not(:only-child):not(.vertical), .linked.vertical > entry + entry:focus.error:not(:only-child) { border-top-color: #cc0000; }
.linked.vertical > spinbutton:not(.vertical) + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + entry:drop(active):not(:only-child), .linked.vertical > entry + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > entry + entry:drop(active):not(:only-child) { border-top-color: #4e9a06; }
.linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:focus:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:focus:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:focus:not(:only-child) + entry, .linked.vertical > entry:focus:not(:only-child) + button, .linked.vertical > entry:focus:not(:only-child) + combobox > box > button.combo { border-top-color: #3584e4; }
-.linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton.error:focus:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry.error:focus:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry.error:focus:not(:only-child) + entry, .linked.vertical > entry.error:focus:not(:only-child) + button, .linked.vertical > entry.error:focus:not(:only-child) + combobox > box > button.combo { border-top-color: #cc0000; }
+.linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:focus.error:not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:focus.error:not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:focus.error:not(:only-child) + entry, .linked.vertical > entry:focus.error:not(:only-child) + button, .linked.vertical > entry:focus.error:not(:only-child) + combobox > box > button.combo { border-top-color: #cc0000; }
.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + spinbutton:not(.vertical), .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + entry, .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + button, .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + combobox > box > button.combo, .linked.vertical > entry:drop(active):not(:only-child) + spinbutton:not(.vertical), .linked.vertical > entry:drop(active):not(:only-child) + entry, .linked.vertical > entry:drop(active):not(:only-child) + button, .linked.vertical > entry:drop(active):not(:only-child) + combobox > box > button.combo { border-top-color: #4e9a06; }
@@ -224,13 +224,13 @@ notebook > header > tabs > arrow:hover, button:hover { color: #2e3436; outline-c
notebook > header > tabs > arrow:active, notebook > header > tabs > arrow:checked, button:active, button:checked { color: #2e3436; outline-color: rgba(46, 52, 54, 0.3); border-color: #cdc7c2; background-image: image(#d6d1cd); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; transition-duration: 50ms; }
-notebook > header > tabs > arrow:backdrop, button.flat:backdrop, button:backdrop { color: #929595; border-color: #d5d0cc; background-image: image(#f6f5f4); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); transition: 200ms ease-out; -gtk-icon-effect: none; }
+notebook > header > tabs > arrow:backdrop, button:backdrop.flat, button:backdrop { color: #929595; border-color: #d5d0cc; background-image: image(#f6f5f4); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); transition: 200ms ease-out; -gtk-icon-effect: none; }
-notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, button.flat:backdrop:active, button.flat:backdrop:checked, button:backdrop:active, button:backdrop:checked { color: #929595; border-color: #d5d0cc; background-image: image(#e4e4e0); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, button:backdrop.flat:active, button:backdrop.flat:checked, button:backdrop:active, button:backdrop:checked { color: #929595; border-color: #d5d0cc; background-image: image(#e4e4e0); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
-notebook > header > tabs > arrow:backdrop:disabled, button.flat:backdrop:disabled, button:backdrop:disabled { color: #d4cfca; border-color: #d5d0cc; background-image: image(#faf9f8); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:disabled, button:backdrop.flat:disabled, button:backdrop:disabled { color: #d4cfca; border-color: #d5d0cc; background-image: image(#faf9f8); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
-notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, button.flat:backdrop:disabled:active, button.flat:backdrop:disabled:checked, button:backdrop:disabled:active, button:backdrop:disabled:checked { color: #d4cfca; border-color: #d5d0cc; background-image: image(#e4e4e0); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
+notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, button:backdrop.flat:disabled:active, button:backdrop.flat:disabled:checked, button:backdrop:disabled:active, button:backdrop:disabled:checked { color: #d4cfca; border-color: #d5d0cc; background-image: image(#e4e4e0); box-shadow: inset 0 1px rgba(255, 255, 255, 0); }
button.titlebutton:backdrop, button.sidebar-button:backdrop, notebook > header > tabs > arrow:backdrop, button.titlebutton:disabled, button.sidebar-button:disabled, notebook > header > tabs > arrow:disabled, button.flat:backdrop, button.flat:disabled, button.flat:backdrop:disabled { border-color: transparent; background-color: transparent; background-image: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; }
@@ -606,11 +606,11 @@ searchbar > revealer > box { margin: -6px; padding: 6px; }
.selection-mode .titlebar:not(headerbar) button:active, .selection-mode .titlebar:not(headerbar) button:checked, .selection-mode.titlebar:not(headerbar) button:active, .selection-mode.titlebar:not(headerbar) button:checked, .selection-mode headerbar button:active, .selection-mode headerbar button:checked, .selection-mode headerbar button.toggle:checked, .selection-mode headerbar button.toggle:active, headerbar.selection-mode button:active, headerbar.selection-mode button:checked, headerbar.selection-mode button.toggle:checked, headerbar.selection-mode button.toggle:active { color: #ffffff; outline-color: rgba(255, 255, 255, 0.3); border-color: #1b6acb; background-image: image(#1961b9); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; }
-.selection-mode .titlebar:not(headerbar) button:backdrop, .selection-mode.titlebar:not(headerbar) button:backdrop, .selection-mode headerbar button.flat:backdrop, .selection-mode headerbar button:backdrop, headerbar.selection-mode button.flat:backdrop, headerbar.selection-mode button:backdrop { color: #d7e6fa; border-color: #3584e4; background-image: image(#3584e4); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); -gtk-icon-effect: none; border-color: #185fb4; }
+.selection-mode .titlebar:not(headerbar) button:backdrop, .selection-mode.titlebar:not(headerbar) button:backdrop, .selection-mode headerbar button:backdrop.flat, .selection-mode headerbar button:backdrop, headerbar.selection-mode button:backdrop.flat, headerbar.selection-mode button:backdrop { color: #d7e6fa; border-color: #3584e4; background-image: image(#3584e4); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); -gtk-icon-effect: none; border-color: #185fb4; }
-.selection-mode .titlebar:not(headerbar) button:backdrop:active, .selection-mode .titlebar:not(headerbar) button:backdrop:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:active, .selection-mode.titlebar:not(headerbar) button:backdrop:checked, .selection-mode headerbar button.flat:backdrop:active, .selection-mode headerbar button.flat:backdrop:checked, .selection-mode headerbar button:backdrop:active, .selection-mode headerbar button:backdrop:checked, headerbar.selection-mode button.flat:backdrop:active, headerbar.selection-mode button.flat:backdrop:checked, headerbar.selection-mode button:backdrop:active, headerbar.selection-mode button:backdrop:checked { color: #d5e6f9; border-color: #2f80e3; background-image: image(#2f80e3); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #185fb4; }
+.selection-mode .titlebar:not(headerbar) button:backdrop:active, .selection-mode .titlebar:not(headerbar) button:backdrop:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:active, .selection-mode.titlebar:not(headerbar) button:backdrop:checked, .selection-mode headerbar button:backdrop.flat:active, .selection-mode headerbar button:backdrop.flat:checked, .selection-mode headerbar button:backdrop:active, .selection-mode headerbar button:backdrop:checked, headerbar.selection-mode button:backdrop.flat:active, headerbar.selection-mode button:backdrop.flat:checked, headerbar.selection-mode button:backdrop:active, headerbar.selection-mode button:backdrop:checked { color: #d5e6f9; border-color: #2f80e3; background-image: image(#2f80e3); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #185fb4; }
-.selection-mode .titlebar:not(headerbar) button:backdrop:disabled, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled, .selection-mode headerbar button.flat:backdrop:disabled, .selection-mode headerbar button:backdrop:disabled, headerbar.selection-mode button.flat:backdrop:disabled, headerbar.selection-mode button:backdrop:disabled { color: #8fbbf0; border-color: #5396e8; background-image: image(#5396e8); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #185fb4; }
+.selection-mode .titlebar:not(headerbar) button:backdrop:disabled, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled, .selection-mode headerbar button:backdrop.flat:disabled, .selection-mode headerbar button:backdrop:disabled, headerbar.selection-mode button:backdrop.flat:disabled, headerbar.selection-mode button:backdrop:disabled { color: #8fbbf0; border-color: #5396e8; background-image: image(#5396e8); text-shadow: none; -gtk-icon-shadow: none; box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #185fb4; }
.selection-mode .titlebar:not(headerbar) button:backdrop:disabled:active, .selection-mode .titlebar:not(headerbar) button:backdrop:disabled:checked, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled:active, .selection-mode.titlebar:not(headerbar) button:backdrop:disabled:checked, .selection-mode headerbar button:backdrop:disabled:active, .selection-mode headerbar button:backdrop:disabled:checked, headerbar.selection-mode button:backdrop:disabled:active, headerbar.selection-mode button:backdrop:disabled:checked { color: #78aced; border-color: #2f80e3; background-image: image(#2f80e3); box-shadow: inset 0 1px rgba(255, 255, 255, 0); border-color: #185fb4; }
@@ -640,9 +640,9 @@ searchbar > revealer > box { margin: -6px; padding: 6px; }
.tiled .titlebar:not(headerbar), .tiled-top .titlebar:not(headerbar), .tiled-right .titlebar:not(headerbar), .tiled-bottom .titlebar:not(headerbar), .tiled-left .titlebar:not(headerbar), .maximized .titlebar:not(headerbar), .fullscreen .titlebar:not(headerbar), .tiled headerbar, .tiled-top headerbar, .tiled-right headerbar, .tiled-bottom headerbar, .tiled-left headerbar, .maximized headerbar, .fullscreen headerbar { border-radius: 0; }
-.default-decoration.titlebar:not(headerbar), headerbar.default-decoration { min-height: 28px; padding: 4px; }
+.default-decoration.titlebar:not(headerbar), headerbar.default-decoration { padding: 0px 2px; min-height: 0; }
-.default-decoration.titlebar:not(headerbar) button.titlebutton, headerbar.default-decoration button.titlebutton { min-height: 26px; min-width: 26px; margin: 0; padding: 0; }
+.default-decoration.titlebar:not(headerbar) button.titlebutton, headerbar.default-decoration button.titlebutton { min-height: 18px; min-width: 18px; margin: 0; padding: 0; }
.titlebar:not(headerbar) separator.titlebutton, headerbar separator.titlebutton { opacity: 0; }
@@ -712,9 +712,9 @@ treeview.view:backdrop { border-left-color: #c4c5c5; border-top: #f6f5f4; }
treeview.view:drop(active) { border-style: solid none; border-width: 1px; border-color: #185fb4; }
-treeview.view.after:drop(active) { border-top-style: none; }
+treeview.view:drop(active).after { border-top-style: none; }
-treeview.view.before:drop(active) { border-bottom-style: none; }
+treeview.view:drop(active).before { border-bottom-style: none; }
treeview.view.expander { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); color: #4d4d4d; }
@@ -919,21 +919,21 @@ notebook > header tab { min-height: 30px; min-width: 30px; padding: 3px 12px; ou
notebook > header tab:hover { color: #2e3436; background-color: #edebe9; }
-notebook > header tab.reorderable-page:hover { border-color: rgba(205, 199, 194, 0.3); background-color: rgba(246, 245, 244, 0.2); }
+notebook > header tab:hover.reorderable-page { border-color: rgba(205, 199, 194, 0.3); background-color: rgba(246, 245, 244, 0.2); }
notebook > header tab:backdrop { color: #babbbb; }
-notebook > header tab.reorderable-page:backdrop { border-color: transparent; background-color: transparent; }
+notebook > header tab:backdrop.reorderable-page { border-color: transparent; background-color: transparent; }
notebook > header tab:checked { color: #2e3436; }
-notebook > header tab.reorderable-page:checked { border-color: rgba(205, 199, 194, 0.5); background-color: rgba(246, 245, 244, 0.5); }
+notebook > header tab:checked.reorderable-page { border-color: rgba(205, 199, 194, 0.5); background-color: rgba(246, 245, 244, 0.5); }
-notebook > header tab.reorderable-page:checked:hover { background-color: rgba(246, 245, 244, 0.7); }
+notebook > header tab:checked.reorderable-page:hover { background-color: rgba(246, 245, 244, 0.7); }
notebook > header tab:backdrop:checked { color: #929595; }
-notebook > header tab.reorderable-page:backdrop:checked { border-color: #d5d0cc; background-color: #f6f5f4; }
+notebook > header tab:backdrop:checked.reorderable-page { border-color: #d5d0cc; background-color: #f6f5f4; }
notebook > header tab button.flat { padding: 0; margin-top: 4px; margin-bottom: 4px; min-width: 20px; min-height: 20px; }
@@ -1014,13 +1014,13 @@ scrollbar.overlay-indicator:not(.dragging):not(.hovering) slider { margin: 0; mi
scrollbar.overlay-indicator:not(.dragging):not(.hovering) button { min-width: 5px; min-height: 5px; background-color: #2e3436; background-clip: padding-box; border-radius: 100%; border: 1px solid white; -gtk-icon-source: none; }
-scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) slider { margin: 0 2px; min-width: 40px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal slider { margin: 0 2px; min-width: 40px; }
-scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) button { margin: 1px 2px; min-width: 5px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal button { margin: 1px 2px; min-width: 5px; }
-scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) slider { margin: 2px 0; min-height: 40px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical slider { margin: 2px 0; min-height: 40px; }
-scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) button { margin: 2px 1px; min-height: 5px; }
+scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical button { margin: 2px 1px; min-height: 5px; }
scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering { opacity: 0.8; }
@@ -1301,99 +1301,99 @@ scale.vertical.fine-tune indicator { min-width: 3px; }
scale.horizontal.marks-before:not(.marks-after) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above.png"), url("assets/slider-horz-scale-has-marks-above@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover.png"), url("assets/slider-horz-scale-has-marks-above-hover@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active.png"), url("assets/slider-horz-scale-has-marks-above-active@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive.png"), url("assets/slider-horz-scale-has-marks-above-insensitive@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-backdrop.png"), url("assets/slider-horz-scale-has-marks-above-backdrop@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-before:not(.marks-after) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-backdrop-insensitive.png"), url("assets/slider-horz-scale-has-marks-above-backdrop-insensitive@2.png")); min-height: 26px; min-width: 22px; margin-top: -14px; background-position: top; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-top: -11px; }
+scale.horizontal.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-top: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below.png"), url("assets/slider-horz-scale-has-marks-below@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover.png"), url("assets/slider-horz-scale-has-marks-below-hover@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active.png"), url("assets/slider-horz-scale-has-marks-below-active@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive.png"), url("assets/slider-horz-scale-has-marks-below-insensitive@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-backdrop.png"), url("assets/slider-horz-scale-has-marks-below-backdrop@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.horizontal.marks-after:not(.marks-before) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-backdrop-insensitive.png"), url("assets/slider-horz-scale-has-marks-below-backdrop-insensitive@2.png")); min-height: 26px; min-width: 22px; margin-bottom: -14px; background-position: bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.horizontal.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-bottom: -11px; }
+scale.horizontal.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-bottom: -11px; }
scale.vertical.marks-before:not(.marks-after) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above.png"), url("assets/slider-vert-scale-has-marks-above@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover.png"), url("assets/slider-vert-scale-has-marks-above-hover@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active.png"), url("assets/slider-vert-scale-has-marks-above-active@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive.png"), url("assets/slider-vert-scale-has-marks-above-insensitive@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-backdrop.png"), url("assets/slider-vert-scale-has-marks-above-backdrop@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-before:not(.marks-after) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-backdrop-insensitive.png"), url("assets/slider-vert-scale-has-marks-above-backdrop-insensitive@2.png")); min-height: 22px; min-width: 26px; margin-left: -14px; background-position: left bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-before.fine-tune:not(.marks-after) slider { margin: -7px; margin-left: -11px; }
+scale.vertical.marks-before:not(.marks-after).fine-tune slider { margin: -7px; margin-left: -11px; }
scale.vertical.marks-after:not(.marks-before) slider { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below.png"), url("assets/slider-vert-scale-has-marks-below@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:hover { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover.png"), url("assets/slider-vert-scale-has-marks-below-hover@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:active { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active.png"), url("assets/slider-vert-scale-has-marks-below-active@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive.png"), url("assets/slider-vert-scale-has-marks-below-insensitive@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:backdrop { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-backdrop.png"), url("assets/slider-vert-scale-has-marks-below-backdrop@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.vertical.marks-after:not(.marks-before) slider:backdrop:disabled { margin: -10px; border-style: none; border-radius: 0; background-color: transparent; background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-backdrop-insensitive.png"), url("assets/slider-vert-scale-has-marks-below-backdrop-insensitive@2.png")); min-height: 22px; min-width: 26px; margin-right: -14px; background-position: right bottom; background-repeat: no-repeat; box-shadow: none; }
-scale.vertical.marks-after.fine-tune:not(.marks-before) slider { margin: -7px; margin-right: -11px; }
+scale.vertical.marks-after:not(.marks-before).fine-tune slider { margin: -7px; margin-right: -11px; }
scale.color { min-height: 0; min-width: 0; }
@@ -1564,7 +1564,7 @@ row.activatable:backdrop:hover { background-color: transparent; }
row.activatable:selected:active { box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.5); }
-row.activatable.has-open-popup:selected, row.activatable:selected:hover { background-color: #347cd3; }
+row.activatable:selected.has-open-popup, row.activatable:selected:hover { background-color: #347cd3; }
row.activatable:selected:backdrop { background-color: #3584e4; }
@@ -1635,9 +1635,9 @@ filechooserbutton:drop(active) { box-shadow: none; border-color: transparent; }
/*********** Sidebar * */
.sidebar { border-style: none; background-color: #fbfafa; }
-stacksidebar.sidebar:dir(ltr) list, stacksidebar.sidebar.left list, stacksidebar.sidebar.left:dir(rtl) list, .sidebar:not(separator):dir(ltr), .sidebar.left:not(separator) { border-right: 1px solid #cdc7c2; border-left-style: none; }
+stacksidebar.sidebar:dir(ltr) list, stacksidebar.sidebar.left list, stacksidebar.sidebar.left:dir(rtl) list, .sidebar:not(separator):dir(ltr), .sidebar:not(separator).left { border-right: 1px solid #cdc7c2; border-left-style: none; }
-stacksidebar.sidebar:dir(rtl) list, stacksidebar.sidebar.right list, .sidebar:not(separator):dir(rtl), .sidebar.right:not(separator) { border-left: 1px solid #cdc7c2; border-right-style: none; }
+stacksidebar.sidebar:dir(rtl) list, stacksidebar.sidebar.right list, .sidebar:not(separator):dir(rtl), .sidebar:not(separator).right { border-left: 1px solid #cdc7c2; border-right-style: none; }
.sidebar:backdrop { background-color: #f9f9f8; border-color: #d5d0cc; transition: 200ms ease-out; }
@@ -1806,9 +1806,9 @@ colorswatch.light overlay:backdrop { color: rgba(0, 0, 0, 0.5); }
colorswatch:drop(active) { box-shadow: none; }
-colorswatch.light:drop(active) overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #3d7805, inset 0 0 0 1px #4e9a06; }
+colorswatch:drop(active).light overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px #3d7805, inset 0 0 0 1px #4e9a06; }
-colorswatch.dark:drop(active) overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.3), inset 0 0 0 1px #4e9a06; }
+colorswatch:drop(active).dark overlay { border-color: #4e9a06; box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.3), inset 0 0 0 1px #4e9a06; }
colorswatch overlay { border: 1px solid rgba(0, 0, 0, 0.3); }
@@ -1856,7 +1856,7 @@ decoration:backdrop { box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(
.maximized decoration, .fullscreen decoration { border-radius: 0; box-shadow: none; }
-.tiled decoration, .tiled-top decoration, .tiled-right decoration, .tiled-bottom decoration, .tiled-left decoration { border-radius: 0; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18), 0 0 0 20px transparent; }
+.tiled decoration, .tiled-top decoration, .tiled-right decoration, .tiled-bottom decoration, .tiled-left decoration { border-radius: 0; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.23), 0 0 0 20px transparent; }
.tiled decoration:backdrop, .tiled-top decoration:backdrop, .tiled-right decoration:backdrop, .tiled-bottom decoration:backdrop, .tiled-left decoration:backdrop { box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18), 0 0 0 20px transparent; }
@@ -1866,6 +1866,8 @@ decoration:backdrop { box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(
.ssd decoration:backdrop { box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18); }
+.ssd.maximized decoration, .ssd.maximized decoration:backdrop { box-shadow: none; }
+
.csd.popup decoration { border-radius: 5px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); }
tooltip.csd decoration { border-radius: 5px; box-shadow: none; }
@@ -1886,9 +1888,9 @@ button.titlebutton:backdrop { -gtk-icon-shadow: none; }
.selection-mode headerbar button.titlebutton:backdrop, .selection-mode .titlebar button.titlebutton:backdrop, headerbar.selection-mode button.titlebutton:backdrop, .titlebar.selection-mode button.titlebutton:backdrop { -gtk-icon-shadow: none; }
-.view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, .view text selection, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { background-color: #3584e4; }
+.view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { background-color: #3584e4; }
-label:selected, .selection-mode button.titlebutton, .view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, .view text selection, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { color: #ffffff; }
+label:selected, .selection-mode button.titlebutton, .view:selected:focus, .view:selected, .view text:selected:focus, textview text:selected:focus, .view text:selected, textview text:selected, .view text selection:focus, .view text selection, textview text selection:focus, textview text selection, iconview:selected:focus, iconview:selected, iconview text selection:focus, iconview text selection, flowbox flowboxchild:selected, entry selection, modelbutton.flat:selected, .menuitem.button.flat:selected, spinbutton:not(.vertical) selection, treeview.view:selected:focus, treeview.view:selected, row:selected, calendar:selected { color: #ffffff; }
label:disabled selection, label:disabled:selected, .selection-mode button.titlebutton:disabled, .view:disabled:selected, textview text:disabled:selected:focus, .view text:disabled:selected, textview text:disabled:selected, .view text selection:disabled, textview text selection:disabled:focus, textview text selection:disabled, iconview:disabled:selected:focus, iconview:disabled:selected, iconview text selection:disabled:focus, iconview text selection:disabled, flowbox flowboxchild:disabled:selected, entry selection:disabled, modelbutton.flat:disabled:selected, .menuitem.button.flat:disabled:selected, spinbutton:not(.vertical) selection:disabled, treeview.view:disabled:selected, row:disabled:selected, calendar:disabled:selected { color: #9ac2f2; }
--
2.45.0

View File

@ -0,0 +1,50 @@
From 26b24916c8570a73bdc9d7a736584ceb68384c81 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Fri, 31 May 2019 11:51:20 -0400
Subject: [PATCH 2/2] scrolled window: respect overlay-scrolling setting
If the gtk-overlay-scrolling setting is FALSE,
don't use overlay scrollbars.
---
gtk/gtkscrolledwindow.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index d52ccf646c..b2dc1d1c79 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -704,6 +704,9 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
* is present. Otherwise, they are overlayed on top of the content,
* as narrow indicators.
*
+ * Note that overlay scrolling can also be globally disabled, with
+ * the #GtkSettings::gtk-overlay-scrolling setting.
+ *
* Since: 3.16
*/
properties[PROP_OVERLAY_SCROLLING] =
@@ -4163,6 +4166,7 @@ gtk_scrolled_window_map (GtkWidget *widget)
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->map (widget);
gtk_scrolled_window_update_animating (scrolled_window);
+ gtk_scrolled_window_update_use_indicators (scrolled_window);
}
static void
@@ -4439,8 +4443,12 @@ gtk_scrolled_window_update_use_indicators (GtkScrolledWindow *scrolled_window)
{
GtkScrolledWindowPrivate *priv = scrolled_window->priv;
gboolean use_indicators;
+ GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (scrolled_window));
+ gboolean overlay_scrolling;
+
+ g_object_get (settings, "gtk-overlay-scrolling", &overlay_scrolling, NULL);
- use_indicators = priv->overlay_scrolling;
+ use_indicators = overlay_scrolling && priv->overlay_scrolling;
if (g_strcmp0 (g_getenv ("GTK_OVERLAY_SCROLLING"), "0") == 0)
use_indicators = FALSE;
--
2.23.0

View File

@ -0,0 +1,40 @@
From 4ba89f25b8a88616afc1915bdb4fb87d13efae6f Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
Date: Tue, 15 Jun 2021 19:34:37 +0200
Subject: [PATCH] cellarea: Don't shrink area too much
Do not compute rectangles with negative width/height. This avoids
assertion failures further down when those rectangles were actually
checked.
https://bugzilla.redhat.com/show_bug.cgi?id=1962215
---
gtk/gtkcellarea.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index 575e1c7fde..d1b3b1a279 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -3563,8 +3563,18 @@ gtk_cell_area_inner_cell_area (GtkCellArea *area,
*inner_area = *cell_area;
+ if (border.left + border.right > cell_area->width)
+ {
+ border.left = cell_area->width / 2;
+ border.right = (cell_area->width + 1) / 2;
+ }
inner_area->x += border.left;
inner_area->width -= border.left + border.right;
+ if (border.top + border.bottom > cell_area->height)
+ {
+ border.top = cell_area->height / 2;
+ border.bottom = (cell_area->height + 1) / 2;
+ }
inner_area->y += border.top;
inner_area->height -= border.top + border.bottom;
}
--
GitLab

View File

@ -0,0 +1,91 @@
From d4f62b44d47e3dddfb57add4f1f76cab0297584d Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Fri, 11 Jun 2021 08:53:46 -0400
Subject: [PATCH 1/2] a11y: Fix ref counting in tree views
GtkContainerCellAccessible wasn't unsetting accessible
parents. Fix that.
By itself, this doesn't help for freeing a memory leak,
since AtkObject keeps a ref on its parent, so we never
free the GtkContainerCellAccessible as long as it has children.
---
gtk/a11y/gtkcontainercellaccessible.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/gtk/a11y/gtkcontainercellaccessible.c b/gtk/a11y/gtkcontainercellaccessible.c
index a756e3cadf..a40446fb47 100644
--- a/gtk/a11y/gtkcontainercellaccessible.c
+++ b/gtk/a11y/gtkcontainercellaccessible.c
@@ -30,12 +30,19 @@ struct _GtkContainerCellAccessiblePrivate
G_DEFINE_TYPE_WITH_PRIVATE (GtkContainerCellAccessible, gtk_container_cell_accessible, GTK_TYPE_CELL_ACCESSIBLE)
+static void
+unset_child (gpointer child)
+{
+ atk_object_set_parent (ATK_OBJECT (child), NULL);
+ g_object_unref (child);
+}
+
static void
gtk_container_cell_accessible_finalize (GObject *obj)
{
GtkContainerCellAccessible *container = GTK_CONTAINER_CELL_ACCESSIBLE (obj);
- g_list_free_full (container->priv->children, g_object_unref);
+ g_list_free_full (container->priv->children, unset_child);
G_OBJECT_CLASS (gtk_container_cell_accessible_parent_class)->finalize (obj);
}
@@ -157,6 +164,7 @@ gtk_container_cell_accessible_remove_child (GtkContainerCellAccessible *containe
g_return_if_fail (GTK_IS_CELL_ACCESSIBLE (child));
g_return_if_fail (container->priv->n_children > 0);
+ atk_object_set_parent (ATK_OBJECT (child), NULL);
container->priv->children = g_list_remove (container->priv->children, child);
container->priv->n_children--;
--
GitLab
From 21f8098261486417db371b202bc0494c12017468 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Fri, 11 Jun 2021 08:55:48 -0400
Subject: [PATCH 2/2] a11y: Plug a memory leak with treeviews
We need to explicitly remove the children from
a GtkContainerCellAccessible, since they otherwise
keep the parent alive.
Fixes: #3981
---
gtk/a11y/gtktreeviewaccessible.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index adad462064..c1a2097a1e 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -104,6 +104,17 @@ static void
cell_info_free (GtkTreeViewAccessibleCellInfo *cell_info)
{
gtk_accessible_set_widget (GTK_ACCESSIBLE (cell_info->cell), NULL);
+ if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (cell_info->cell))
+ {
+ GList *children;
+
+ while ((children = gtk_container_cell_accessible_get_children (GTK_CONTAINER_CELL_ACCESSIBLE (cell_info->cell))) != NULL)
+ {
+ GtkCellAccessible *child = children->data;
+ gtk_container_cell_accessible_remove_child (GTK_CONTAINER_CELL_ACCESSIBLE (cell_info->cell), child);
+ }
+ }
+
g_object_unref (cell_info->cell);
g_free (cell_info);
--
GitLab

View File

@ -0,0 +1,51 @@
From c3503fcc84eec0bcf857cc744580aa9a4d5dc7eb Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Tue, 13 Apr 2021 14:10:27 -0400
Subject: [PATCH] x11: Be quiet on exit by default
The condition we check for to catch X servers going away
may not be accurate anymore, and the warning shows up in
logs, causing customers to be concerned. So, be quiet by
default, unless the user explicitly asked for a message.
---
gdk/x11/gdkmain-x11.c | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c
index 64c7cb4302..cd877ce3e4 100644
--- a/gdk/x11/gdkmain-x11.c
+++ b/gdk/x11/gdkmain-x11.c
@@ -240,24 +240,13 @@ gdk_x_io_error (Display *display)
/* This is basically modelled after the code in XLib. We need
* an explicit error handler here, so we can disable our atexit()
* which would otherwise cause a nice segfault.
- * We fprintf(stderr, instead of g_warning() because g_warning()
- * could possibly be redirected to a dialog
+ * We g_debug() instead of g_warning(), because g_warning()
+ * could possibly be redirected to the log
*/
- if (errno == EPIPE)
- {
- g_message ("The application '%s' lost its connection to the display %s;\n"
- "most likely the X server was shut down or you killed/destroyed\n"
- "the application.\n",
- g_get_prgname (),
- display ? DisplayString (display) : gdk_get_display_arg_name ());
- }
- else
- {
- g_message ("%s: Fatal IO error %d (%s) on X server %s.\n",
- g_get_prgname (),
- errno, g_strerror (errno),
- display ? DisplayString (display) : gdk_get_display_arg_name ());
- }
+ g_debug ("%s: Fatal IO error %d (%s) on X server %s.\n",
+ g_get_prgname (),
+ errno, g_strerror (errno),
+ display ? DisplayString (display) : gdk_get_display_arg_name ());
_exit (1);
}
--
GitLab

View File

@ -1,53 +0,0 @@
From 7f295eeb324c3d793bdf302fa7ea9ebdd8a52bcf Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Thu, 23 Dec 2021 10:53:57 +0000
Subject: [PATCH] meson: Do not install reftests
Match the testsuite in the main branch.
---
testsuite/reftests/meson.build | 25 +------------------------
1 file changed, 1 insertion(+), 24 deletions(-)
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
index b4bf6784cc..2135ebb434 100644
--- a/testsuite/reftests/meson.build
+++ b/testsuite/reftests/meson.build
@@ -22,9 +22,7 @@ libreftest = shared_library('reftest',
gtk_reftest = executable('gtk-reftest', 'gtk-reftest.c',
link_with : [libgtkreftestprivate, libreftest],
- dependencies : libgtk_dep,
- install: get_option('installed_tests'),
- install_dir: installed_test_bindir)
+ dependencies : libgtk_dep)
test_data = [
'721800-0px-dotted-border.css',
@@ -457,24 +455,3 @@ foreach testname : test_data
is_parallel: false)
endif
endforeach
-
-reftests_installed_tests = [
- 'reftests-dark.test',
- 'reftests-hc.test',
- 'reftests-hci.test',
- 'reftests.test',
-]
-
-if get_option('installed_tests')
- test_cdata = configuration_data()
- test_cdata.set('libexecdir', gtk_libexecdir)
-
- foreach t: reftests_installed_tests
- configure_file(input: '@0@.in'.format(t),
- output: t,
- configuration: test_cdata,
- install_dir: installed_test_datadir)
- endforeach
-
- install_data(test_data, install_dir: testexecdir)
-endif
--
2.33.1

View File

@ -1,316 +0,0 @@
From 9bad0a2d5e35fdd2d89efedae1298d7c3dd158a3 Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Tue, 21 Dec 2021 10:09:29 +0000
Subject: [PATCH 1/3] meson: Remove missing reftests
Removed from autotools build in commit
93e1f7f1ec709325fe9b0554b92add06ad988ae8.
---
testsuite/reftests/meson.build | 7 -------
1 file changed, 7 deletions(-)
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
index 9bfe1bb698..b4bf6784cc 100644
--- a/testsuite/reftests/meson.build
+++ b/testsuite/reftests/meson.build
@@ -291,9 +291,6 @@ test_data = [
'label-text-shadow-clipping.css',
'label-text-shadow-clipping.ref.ui',
'label-text-shadow-clipping.ui',
- 'label-text-shadow-changes-modify-clip.css',
- 'label-text-shadow-changes-modify-clip.ref.ui',
- 'label-text-shadow-changes-modify-clip.ui',
'label-width-chars-dont-shrink.ref.ui',
'label-width-chars-dont-shrink.ui',
'label-wrap-justify.ref.ui',
@@ -405,10 +402,6 @@ test_data = [
'textview-margins.ui',
'textview-tags.ref.ui',
'textview-tags.ui',
- 'toplevel-vs-popup.ref.ui',
- 'toplevel-vs-popup.ui',
- 'treeview-crash-too-wide.ref.ui',
- 'treeview-crash-too-wide.ui',
'treeview-fixed-height.css',
'treeview-fixed-height.ref.ui',
'treeview-fixed-height.ui',
--
2.33.1
From 2b566f0633a740cca2b30941231f0507de873002 Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Tue, 21 Dec 2021 11:10:37 +0000
Subject: [PATCH 2/3] meson: Install example schema XML
---
examples/application10/meson.build | 4 +++-
examples/application5/meson.build | 4 +++-
examples/application6/meson.build | 4 +++-
examples/application7/meson.build | 4 +++-
examples/application8/meson.build | 4 +++-
examples/application9/meson.build | 4 +++-
6 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/examples/application10/meson.build b/examples/application10/meson.build
index ce842ae794..417a64155e 100644
--- a/examples/application10/meson.build
+++ b/examples/application10/meson.build
@@ -5,7 +5,7 @@ app10_resources = gnome.compile_resources(
source_dir: '.'
)
-app10_schemas = gnome.compile_schemas()
+app10_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app10 = executable(
@@ -21,3 +21,5 @@ app10 = executable(
app10_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
diff --git a/examples/application5/meson.build b/examples/application5/meson.build
index f0fed1ca59..8ecb41948e 100644
--- a/examples/application5/meson.build
+++ b/examples/application5/meson.build
@@ -5,7 +5,7 @@ app5_resources = gnome.compile_resources(
source_dir: '.'
)
-app5_schemas = gnome.compile_schemas()
+app5_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app5 = executable(
@@ -19,3 +19,5 @@ app5 = executable(
app5_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
diff --git a/examples/application6/meson.build b/examples/application6/meson.build
index 2d923f35a3..8a172e2e26 100644
--- a/examples/application6/meson.build
+++ b/examples/application6/meson.build
@@ -5,7 +5,7 @@ app6_resources = gnome.compile_resources(
source_dir: '.'
)
-app6_schemas = gnome.compile_schemas()
+app6_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app6 = executable(
@@ -21,3 +21,5 @@ app6 = executable(
app6_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
diff --git a/examples/application7/meson.build b/examples/application7/meson.build
index cc32f36ad0..4c46221085 100644
--- a/examples/application7/meson.build
+++ b/examples/application7/meson.build
@@ -5,7 +5,7 @@ app7_resources = gnome.compile_resources(
source_dir: '.'
)
-app7_schemas = gnome.compile_schemas()
+app7_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app7 = executable(
@@ -21,3 +21,5 @@ app7 = executable(
app7_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
diff --git a/examples/application8/meson.build b/examples/application8/meson.build
index 1192f4d688..ee49034d2b 100644
--- a/examples/application8/meson.build
+++ b/examples/application8/meson.build
@@ -5,7 +5,7 @@ app8_resources = gnome.compile_resources(
source_dir: '.'
)
-app8_schemas = gnome.compile_schemas()
+app8_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app8 = executable(
@@ -21,3 +21,5 @@ app8 = executable(
app8_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
diff --git a/examples/application9/meson.build b/examples/application9/meson.build
index fccee738cb..46b77c4d17 100644
--- a/examples/application9/meson.build
+++ b/examples/application9/meson.build
@@ -5,7 +5,7 @@ app9_resources = gnome.compile_resources(
source_dir: '.'
)
-app9_schemas = gnome.compile_schemas()
+app9_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app9 = executable(
@@ -21,3 +21,5 @@ app9 = executable(
app9_schemas,
dependencies: libgtk_dep
)
+
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
--
2.33.1
From e36849e6a397bc7e0356bd51583d79f821f9c3db Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Tue, 21 Dec 2021 14:04:40 +0000
Subject: [PATCH 3/3] Revert "meson: simplify builtin_immodules build option"
This reverts commit 749a58ab26bc01381d66ccefdd3aa42a34353e70.
This maintains feature parity with the autotools build.
---
gtk/meson.build | 2 +-
meson.build | 30 ++++++++++++++++++++++++------
meson_options.txt | 4 ++--
modules/input/meson.build | 2 +-
4 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/gtk/meson.build b/gtk/meson.build
index 9754686cca..12aa7db5c3 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -959,7 +959,7 @@ foreach l: immodules
cond = l.get(2, true)
cflags = l.get(3, [])
- if cond and builtin_immodules
+ if cond and (builtin_immodules.contains(name) or builtin_all_immodules)
gtk_cargs += ['-DINCLUDE_IM_@0@'.format(name.underscorify())]
mod = static_library('staticimmodule-@0@'.format(name),
sources + gtk_dep_sources,
diff --git a/meson.build b/meson.build
index 16d1597116..15cca3de15 100644
--- a/meson.build
+++ b/meson.build
@@ -499,6 +499,8 @@ else
cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix'))
endif
+backend_immodules = []
+
pc_gdk_extra_libs = []
cairo_found_type = cairo_dep.type_name()
@@ -554,6 +556,7 @@ if wayland_enabled
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
wlcursordep = dependency('wayland-cursor', version: wayland_req)
wlegldep = dependency('wayland-egl')
+ backend_immodules += ['wayland']
wayland_pkgs = [
'wayland-client', wayland_req,
@@ -578,6 +581,8 @@ if x11_enabled
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
+ backend_immodules += ['xim']
+
x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
if xcursor_dep.found()
@@ -656,10 +661,12 @@ endif
if broadway_enabled
pc_gdk_extra_libs += ['-lz']
+ backend_immodules += ['broadway']
endif
if quartz_enabled
pc_gdk_extra_libs += ['-Wl,-framework,Cocoa', '-Wl,-framework,Carbon', '-Wl,-framework,CoreGraphics']
+ backend_immodules += ['quartz']
endif
extra_demo_ldflags = []
@@ -674,6 +681,7 @@ if win32_enabled
pc_gdk_extra_libs += ['-Wl,-luuid']
endif
pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32']
+ backend_immodules += ['ime']
# Check whether libepoxy is built with EGL support on Windows
win32_has_egl = epoxy_dep.get_variable(
@@ -684,20 +692,30 @@ endif
# IMModules stuff-unfortunately we need to put items here
# as they can be built as modules or built directly into GTK
+builtin_all_immodules = false
+
builtin_modules_opt = get_option('builtin_immodules')
-if builtin_modules_opt == 'auto'
+builtin_immodules = []
+
+if builtin_modules_opt == ''
if os_win32
# Current MSVC projects build all immodules directly into GTK by default,
# as does the mingw autotools build
message('IMModules are built into GTK for MSVC builds by default')
- builtin_immodules = true
+ builtin_immodules = ['all']
else
- builtin_immodules = false
+ builtin_immodules = ['none']
endif
-elif builtin_modules_opt == 'yes'
- builtin_immodules = true
else
- builtin_immodules = false
+ builtin_immodules = builtin_modules_opt.split(',')
+endif
+
+if builtin_immodules.contains('none')
+ builtin_immodules = []
+elif builtin_immodules.contains('all')
+ builtin_all_immodules = true
+elif builtin_immodules.contains('backend')
+ builtin_immodules += backend_immodules
endif
proto_sources = [
diff --git a/meson_options.txt b/meson_options.txt
index 1ca55b1467..94099aa01e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -45,5 +45,5 @@ option('installed_tests', type: 'boolean', value: 'false',
description : 'enable installed tests')
# input modules
-option('builtin_immodules', type: 'combo', choices : ['yes', 'no', 'auto'],
- value: 'auto', description: 'Build immodules into GTK so/DLL')
+option('builtin_immodules', type: 'string',
+ value: '', description: 'Build specified immodules into GTK so/DLL (comma-separated list), "all", "none" or "backend"')
diff --git a/modules/input/meson.build b/modules/input/meson.build
index 7b201af894..95534b05ec 100644
--- a/modules/input/meson.build
+++ b/modules/input/meson.build
@@ -7,7 +7,7 @@ foreach l: immodules
cond = l.get(2, true)
cflags = l.get(3, [])
- if cond and not builtin_immodules
+ if cond and not (builtin_immodules.contains(name) or builtin_all_immodules)
shared_module('im-@0@'.format(name),
immod_sources,
c_args: common_cflags + cflags,
--
2.33.1

View File

@ -0,0 +1,26 @@
From a7a10aa63fa4e24d109b2e50f98c9616818f7e7a Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 21 Apr 2021 15:08:22 -0400
Subject: [PATCH] iconbrowser: Don't use a nonexistent icon
We don't have this icon, so don't put it in the
desktop file, or tools will get upset.
---
demos/icon-browser/gtk3-icon-browser.desktop | 1 -
1 file changed, 1 deletion(-)
diff --git a/demos/icon-browser/gtk3-icon-browser.desktop b/demos/icon-browser/gtk3-icon-browser.desktop
index c1a546e1d2..a7d6b4f0cb 100644
--- a/demos/icon-browser/gtk3-icon-browser.desktop
+++ b/demos/icon-browser/gtk3-icon-browser.desktop
@@ -2,7 +2,6 @@
Name=Icon Browser
Comment=An application that shows themed icons
Exec=gtk3-icon-browser
-Icon=gtk3-icon-browser
Terminal=false
Type=Application
StartupNotify=true
--
GitLab

View File

@ -1,62 +1,74 @@
%if 0%{?fedora} %if 0%{?fedora} || 0%{?rhel} > 7
%global with_wayland 1
%global with_broadway 1 %global with_broadway 1
%endif %endif
%global glib2_version 2.57.2 %global glib2_version 2.49.4
%global pango_version 1.41.0 %global pango_version 1.37.3
%global atk_version 2.35.1 %global atk_version 2.15.1
%global cairo_version 1.14.0 %global cairo_version 1.14.0
%global gdk_pixbuf_version 2.30.0 %global gdk_pixbuf_version 2.30.0
%global xrandr_version 1.5.0 %global xrandr_version 1.5.0
%global wayland_protocols_version 1.17 %global wayland_version 1.9.91
%global wayland_version 1.14.91 %global wayland_protocols_version 1.12
%global epoxy_version 1.4 %global epoxy_version 1.0
%global bin_version 3.0.0 %global bin_version 3.0.0
%global _changelog_trimtime %(date +%s -d "1 year ago")
# Filter provides for private modules # Filter provides for private modules
%global __provides_exclude_from ^%{_libdir}/gtk-3.0 %global __provides_exclude_from ^%{_libdir}/gtk-3.0
Name: gtk3 Name: gtk3
Version: 3.24.31 Version: 3.22.30
Release: 5%{?dist} Release: 12%{?dist}
Summary: GTK+ graphical user interface library Summary: GTK+ graphical user interface library
License: LGPLv2+ License: LGPLv2+
URL: http://www.gtk.org URL: http://www.gtk.org
Source0: http://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz Source0: http://download.gnome.org/sources/gtk+/3.22/gtk+-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=2025439 # rhbz#1656447 / https://gitlab.gnome.org/GNOME/gtk/issues/1507
Patch0: gtk3-3.24.30-entry-no-emoji-context-menu.patch Patch1: 0001-a11y-Check-X11-display-at-runtime.patch
Patch2: 0001-a11y-Check-display-in-grab_cell_focus.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4273 # ehbz#1723836
Patch1: gtk3-3.24.31-meson.patch Patch3: 0001-a11y-Include-window-management-buttons-in-headerbar.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4280 # rhbz#1736742
Patch2: gtk3-3.24.31-meson-reftest.patch Patch4: 0001-Add-a-gtk-overlay-scrolling-setting.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2055013 Patch5: 0002-scrolled-window-respect-overlay-scrolling-setting.patch
Patch3: gtk3-3.24.31-treeview-a11y-leak-fix.patch # Backported from upstream / https://gitlab.gnome.org/GNOME/gtk/merge_requests/1114
# https://issues.redhat.com/browse/RHEL-22483 # rhbz#1843486
Patch4: 0001-theme-Reduce-the-height-of-titlebars.patch Patch6: 0001-gtklistbox-Only-unparent-header-rows-if-they-haven-t.patch
# https://issues.redhat.com/browse/RHEL-46993 # rhbz#1893196
Patch5: 0001-Stop-looking-for-modules-in-cwd.patch Patch7: 0001-entry-Only-offer-Emoji-if-requested.patch
# rhbz#1873488
Patch8: 0001-fix-nonoverlay-scrollbars.patch
# Upstream patch to make reftests work in a vm
Patch9: 0001-reftests-Enforce-default-settings.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2032438
Patch10: gtk-3.22.20-fix-treeview-refcount.patch
Patch11: gtk-3.22.20-fix-treeview-refcount2.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1887266
Patch12: gtk-3.22.20-quiet-exit.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2032437
Patch13: gtk-3.22.20-avoid-cellarea-crash.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2058260
Patch14: 0001-Remove-the-without-parent-warning.patch
# Fix the rpminspect warning
# https://gitlab.gnome.org/GNOME/gtk/-/commit/5e673e94de3f59e3b937ce14d22b8c07c6e975cd
Patch15: gtk3-icon-browser-no-icon.patch
# Fix loading modules from cwd
Patch16: 0001-Stop-looking-for-modules-in-cwd.patch
BuildRequires: pkgconfig(atk) >= %{atk_version} BuildRequires: pkgconfig(atk) >= %{atk_version}
BuildRequires: pkgconfig(atk-bridge-2.0) BuildRequires: pkgconfig(atk-bridge-2.0)
BuildRequires: pkgconfig(avahi-gobject)
BuildRequires: pkgconfig(cairo) >= %{cairo_version}
BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version}
BuildRequires: pkgconfig(colord)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(epoxy)
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(cairo) >= %{cairo_version}
BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version}
BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: pkgconfig(pango) >= %{pango_version}
BuildRequires: pkgconfig(tracker-sparql-3.0) BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
BuildRequires: pkgconfig(wayland-client) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-egl) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version}
BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xrandr) >= %{xrandr_version} BuildRequires: pkgconfig(xrandr) >= %{xrandr_version}
BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xrender)
@ -66,12 +78,23 @@ BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xcomposite) BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(epoxy)
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: gettext BuildRequires: gettext
BuildRequires: gtk-doc BuildRequires: gtk-doc
BuildRequires: meson BuildRequires: cups-devel
BuildRequires: pkgconfig(rest-0.7)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(colord)
BuildRequires: pkgconfig(avahi-gobject)
BuildRequires: desktop-file-utils
%if 0%{?with_wayland}
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(wayland-client) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-egl) >= %{wayland_version}
BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version}
BuildRequires: pkgconfig(xkbcommon)
%endif
# standard icons # standard icons
Requires: adwaita-icon-theme Requires: adwaita-icon-theme
@ -87,20 +110,29 @@ Requires: glib2%{?_isa} >= %{glib2_version}
Requires: libepoxy%{?_isa} >= %{epoxy_version} Requires: libepoxy%{?_isa} >= %{epoxy_version}
Requires: libXrandr%{?_isa} >= %{xrandr_version} Requires: libXrandr%{?_isa} >= %{xrandr_version}
Requires: pango%{?_isa} >= %{pango_version} Requires: pango%{?_isa} >= %{pango_version}
%if 0%{?with_wayland}
Requires: libwayland-client%{?_isa} >= %{wayland_version} Requires: libwayland-client%{?_isa} >= %{wayland_version}
Requires: libwayland-cursor%{?_isa} >= %{wayland_version} Requires: libwayland-cursor%{?_isa} >= %{wayland_version}
%endif
# required to support all the different image formats # required to support all the different image formats
Requires: gdk-pixbuf2-modules%{?_isa} Requires: gdk-pixbuf2-modules%{?_isa}
# make sure we have a reasonable gsettings backend # make sure we have a reasonable gsettings backend
%if 0%{?fedora} || 0%{?rhel} > 7
Recommends: dconf%{?_isa} Recommends: dconf%{?_isa}
%else
Requires: dconf%{?_isa}
%endif
# For sound theme events in gtk3 apps # gtk3 itself includes the Adwaita theme now
Recommends: libcanberra-gtk3%{?_isa} Obsoletes: adwaita-gtk3-theme < 3.13.3
Provides: adwaita-gtk3-theme = %{version}-%{release}
# For Tracker search in the file chooser. # gtk3 no longer provides the GtkThemeEngine interface used there
Recommends: tracker-miners Obsoletes: gtk3-engines <= 2.91.5-5.fc15
Obsoletes: gtk-solidity-engine < 0.4.1-9
Obsoletes: oxygen-gtk3 < 2:1.4.1
%description %description
GTK+ is a multi-platform toolkit for creating graphical user GTK+ is a multi-platform toolkit for creating graphical user
@ -112,6 +144,8 @@ This package contains version 3 of GTK+.
%package -n gtk-update-icon-cache %package -n gtk-update-icon-cache
Summary: Icon theme caching utility Summary: Icon theme caching utility
# gtk-update-icon-cache used to be shipped in the gtk2 package
Conflicts: gtk2 < 2.24.29
%description -n gtk-update-icon-cache %description -n gtk-update-icon-cache
GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot of GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot of
@ -139,6 +173,7 @@ The gtk3-immodule-xim package contains XIM support for GTK+ 3.
%package devel %package devel
Summary: Development files for GTK+ Summary: Development files for GTK+
Requires: gtk3%{?_isa} = %{version}-%{release} Requires: gtk3%{?_isa} = %{version}-%{release}
Obsoletes: gtk3-engines-devel <= 2.91.5-5.fc15
%description devel %description devel
This package contains the libraries and header files that are needed This package contains the libraries and header files that are needed
@ -163,26 +198,53 @@ The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package. the functionality of the installed %{name} package.
%prep %prep
%autosetup -n gtk+-%{version} -p1 %setup -q -n gtk+-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%build %build
export CFLAGS='-fno-strict-aliasing %optflags' export CFLAGS='-fno-strict-aliasing %optflags'
%meson \ (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
%if 0%{?with_broadway} %configure $CONFIGFLAGS \
-Dbroadway_backend=true \ --enable-xkb \
--enable-xinerama \
--enable-xrandr \
--enable-xfixes \
--enable-xcomposite \
--enable-xdamage \
--enable-x11-backend \
%if 0%{?with_wayland}
--enable-wayland-backend \
%endif %endif
-Dbuiltin_immodules=wayland,waylandgtk \ %if 0%{?with_broadway}
-Dcolord=yes \ --enable-broadway-backend \
-Dcloudproviders=false \ %endif
-Dgtk_doc=true \ --enable-colord \
-Dinstalled_tests=true \ --enable-installed-tests \
-Dman=true \ --with-included-immodules=wayland
-Dtracker3=true \ )
-Dxinerama=yes \
%meson_build # fight unused direct deps
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make %{?_smp_mflags}
%install %install
%meson_install %make_install RUN_QUERY_IMMODULES_TEST=false
%find_lang gtk30 %find_lang gtk30
%find_lang gtk30-properties %find_lang gtk30-properties
@ -193,6 +255,13 @@ export CFLAGS='-fno-strict-aliasing %optflags'
echo ".so man1/gtk-query-immodules-3.0.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk-query-immodules-3.0-%{__isa_bits}.1 echo ".so man1/gtk-query-immodules-3.0.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk-query-immodules-3.0-%{__isa_bits}.1
# Remove unpackaged files
find $RPM_BUILD_ROOT -name '*.la' -delete
%if !0%{?with_broadway}
rm $RPM_BUILD_ROOT%{_mandir}/man1/broadwayd.1*
%endif
touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0
@ -219,6 +288,7 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_libdir}/libgailutil-3.so.* %{_libdir}/libgailutil-3.so.*
%dir %{_libdir}/gtk-3.0 %dir %{_libdir}/gtk-3.0
%dir %{_libdir}/gtk-3.0/%{bin_version} %dir %{_libdir}/gtk-3.0/%{bin_version}
%dir %{_datadir}/gtk-3.0
%{_libdir}/gtk-3.0/%{bin_version}/theming-engines %{_libdir}/gtk-3.0/%{bin_version}/theming-engines
%dir %{_libdir}/gtk-3.0/%{bin_version}/immodules %dir %{_libdir}/gtk-3.0/%{bin_version}/immodules
%{_libdir}/gtk-3.0/%{bin_version}/printbackends %{_libdir}/gtk-3.0/%{bin_version}/printbackends
@ -235,8 +305,6 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
%dir %{_datadir}/gtk-3.0
%{_datadir}/gtk-3.0/emoji/
%if 0%{?with_broadway} %if 0%{?with_broadway}
%{_bindir}/broadwayd %{_bindir}/broadwayd
%{_mandir}/man1/broadwayd.1* %{_mandir}/man1/broadwayd.1*
@ -286,10 +354,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_bindir}/gtk3-demo-application %{_bindir}/gtk3-demo-application
%{_bindir}/gtk3-widget-factory %{_bindir}/gtk3-widget-factory
%{_datadir}/gettext/ %{_datadir}/gettext/
%{_datadir}/gtk-3.0/gtkbuilder.rng
%{_datadir}/gir-1.0 %{_datadir}/gir-1.0
%{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
%{_datadir}/gtk-3.0/gtkbuilder.rng
%{_datadir}/gtk-3.0/valgrind/
%{_mandir}/man1/gtk3-demo.1* %{_mandir}/man1/gtk3-demo.1*
%{_mandir}/man1/gtk3-demo-application.1* %{_mandir}/man1/gtk3-demo-application.1*
%{_mandir}/man1/gtk3-icon-browser.1* %{_mandir}/man1/gtk3-icon-browser.1*
@ -302,183 +369,44 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_datadir}/gtk-doc %{_datadir}/gtk-doc
%files tests %files tests
%{_libexecdir}/installed-tests/ %{_libexecdir}/installed-tests/gtk+
%{_datadir}/installed-tests/ %{_datadir}/installed-tests
%changelog %changelog
* Wed Jul 10 2024 Matthias Clasen <mclasen@redhat.com> - 3.24.31-5 * Wed Jul 10 2024 Matthias Clasen <mclasen@redhat.com> - 3.22.30-12
- Stop looking for modules in cwd (CVE-2024-6655) - Stop loading modules from cwd (CVE-2024-6655)
- Resolves: RHEL-46993 - Resolves: RHEL-46988
* Wed May 15 2024 Matthias Clasen <mclasen@redhat.com> - 3.24.31-4 * Mon Aug 22 2022 Carlos Garnacho <cgarnach@redhat.com> - 3.22.30-11
- Actually reduce the height of window titlebars - Drop warning about unparented dialogs (#2058260)
* Thu May 02 2024 Matthias Clasen <mclasen@redhat.com> - 3.24.31-3 * Tue Feb 15 2022 David King <dking@redhat.com> - 3.22.30-10
- Reduce the height of window titlebars - Further treeview a11y refcount fix (#2032438)
* Thu Feb 17 2022 David King <amigadave@amigadave.com> - 3.24.31-2 * Mon Jan 17 2022 David King <dking@redhat.com> - 3.22.30-9
- Fix treeview a11y refcount leak (#2055013) - Fix treeview a11y refcounting (#2032438)
- Be quiet on exit under X11 (#1887266)
- Avoid cellarea resize crash (#2032437)
* Thu Jan 13 2022 David King <amigadave@amigadave.com> - 3.24.31-1 * Mon Jul 19 2021 Matthias Clasen <mclasen@redhat.com> - 3.22.30-8
- Rebase to 3.24.31 (#2010192) - Make reftests work in a vm
* Thu Jan 13 2022 David King <amigadave@amigadave.com> - 3.24.30-4 * Fri Jul 16 2021 Matthias Clasen <mclasen@redhat.com> - 3.22.30-7
- No entry emoji context menu (#2025439) - Only mention Emoji in context menus when requested (rhbz#1893196)
- Fix warnings from non-overlay scrollbars (rhbz#1873488)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.24.30-3 * Wed Jun 03 2020 Kalev Lember <klember@redhat.com> - 3.22.30-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Fix reuse of list box header widgets (#rhbz1843486)
Related: rhbz#1991688
* Mon Jul 19 2021 Matthias Clasen <mclasen@redhat.com> - 3.24.30-2 * Thu Nov 21 2019 Benjamin Otte <otte@redhat.com> - 3.22.30-5
- Fix reftests to work in a vm (#1981790) - Add setting for turning off overlay scrollbars (rhbz#1736742)
* Tue Jul 13 2021 David King <amigadave@amigadave.com> - 3.24.30-1 * Thu Aug 15 2019 Benjamin Otte <otte@redhat.com> - 3.22.30-4
- Update to 3.24.30 (#1981790) - Include headerbar buttons in accessibility (rhbz#1723836)
* Fri Apr 23 2021 Kalev Lember <klember@redhat.com> - 3.24.29-1 * Mon Jan 14 2019 Olivier Fourdan <ofourdan@redhat.com> - 3.22.30-3
- Update to 3.24.29 - Fix a couple of crashes when using the accessibility interface under
Wayland (rhbz#1656447)
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.24.28-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Sat Mar 27 2021 Kalev Lember <klember@redhat.com> - 3.24.28-1
- Update to 3.24.28
- Drop old obsoletes
* Fri Mar 12 2021 Kalev Lember <klember@redhat.com> - 3.24.27-1
- Update to 3.24.27
* Tue Feb 23 2021 Kalev Lember <klember@redhat.com> - 3.24.26-1
- Update to 3.24.26
* Fri Feb 19 2021 Kalev Lember <klember@redhat.com> - 3.24.25-3
- Backport upstream patch to fix a settings schema loading issue on Wayland
* Mon Feb 15 2021 Kalev Lember <klember@redhat.com> - 3.24.25-2
- Backport upstream patches to fix regressions in Compose file parsing
- Backport upstream patch to further tweak scrollbar transitions and size
* Fri Feb 12 2021 Kalev Lember <klember@redhat.com> - 3.24.25-1
- Update to 3.24.25
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.24-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 22 2021 Kalev Lember <klember@redhat.com> - 3.24.24-2
- Recommend libcanberra-gtk3 for sound theme events in gtk3 apps
* Fri Dec 11 2020 Kalev Lember <klember@redhat.com> - 3.24.24-1
- Update to 3.24.24
* Tue Nov 24 2020 Kalev Lember <klember@redhat.com> - 3.24.23-2
- Backport a patch to add support for primary-selection-unstable-v1 protocol
* Fri Sep 04 2020 Kalev Lember <klember@redhat.com> - 3.24.23-1
- Update to 3.24.23
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.24.22-2
- Rebuild for sysprof-capture-4
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.24.22-1
- Update to 3.24.22
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.21-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 20 2020 Kalev Lember <klember@redhat.com> - 3.24.21-1
- Update to 3.24.21
* Mon Apr 27 2020 Kalev Lember <klember@redhat.com> - 3.24.20-1
- Update to 3.24.20
* Fri Apr 10 2020 Kalev Lember <klember@redhat.com> - 3.24.18-1
- Update to 3.24.18
* Fri Apr 03 2020 Kalev Lember <klember@redhat.com> - 3.24.17-1
- Update to 3.24.17
* Fri Apr 03 2020 Kalev Lember <klember@redhat.com> - 3.24.16-2
- Backport upstream fixes for an imwayland crash
* Fri Mar 27 2020 Kalev Lember <klember@redhat.com> - 3.24.16-1
- Update to 3.24.16
* Mon Feb 17 2020 Kalev Lember <klember@redhat.com> - 3.24.14-1
- Update to 3.24.14
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Nov 27 2019 Kalev Lember <klember@redhat.com> - 3.24.13-1
- Update to 3.24.13
* Tue Oct 22 2019 Adam Williamson <awilliam@redhat.com> - 3.24.12-3
- Backport PR #1146 to fix a bug that #1142 introduced...
* Mon Oct 21 2019 Adam Williamson <awilliam@redhat.com> - 3.24.12-2
- Backport PR #1142 to try and fix intermittent copy/cut failures
* Fri Oct 04 2019 Kalev Lember <klember@redhat.com> - 3.24.12-1
- Update to 3.24.12
* Wed Sep 04 2019 Kalev Lember <klember@redhat.com> - 3.24.11-1
- Update to 3.24.11
- Build with sysprof support on F31+
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 08 2019 Kalev Lember <klember@redhat.com> - 3.24.10-1
- Update to 3.24.10
* Tue Jun 18 2019 Kalev Lember <klember@redhat.com> - 3.24.9-1
- Update to 3.24.9
* Thu Apr 11 2019 Kalev Lember <klember@redhat.com> - 3.24.8-1
- Update to 3.24.8
* Thu Mar 14 2019 Kalev Lember <klember@redhat.com> - 3.24.7-2
- Undo runtime gtk_window_present deprecation warnings
* Tue Mar 12 2019 Kalev Lember <klember@redhat.com> - 3.24.7-1
- Update to 3.24.7
* Tue Mar 12 2019 Kalev Lember <klember@redhat.com> - 3.24.6-1
- Update to 3.24.6
* Mon Feb 04 2019 Kalev Lember <klember@redhat.com> - 3.24.5-1
- Update to 3.24.5
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 21 2019 Kalev Lember <klember@redhat.com> - 3.24.4-1
- Update to 3.24.4
* Mon Jan 14 2019 Kalev Lember <klember@redhat.com> - 3.24.3-1
- Update to 3.24.3
- Co-own /usr/libexec/installed-tests directory
* Wed Sep 19 2018 Kalev Lember <klember@redhat.com> - 3.24.1-1
- Update to 3.24.1
* Mon Sep 10 2018 Adam Williamson <awilliam@redhat.com> - 3.24.0-4
- Revert a problematic change that breaks several things (GGO #1316)
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 3.24.0-3
- Rebuilt against fixed atk (#1626575)
* Thu Sep 06 2018 Kalev Lember <klember@redhat.com> - 3.24.0-2
- Backport two bugfixes from upstream
* Thu Sep 06 2018 Kalev Lember <klember@redhat.com> - 3.24.0-1
- Update to 3.24.0
* Mon Aug 13 2018 Kalev Lember <klember@redhat.com> - 3.23.2-1
- Update to 3.23.2
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.22.30-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Apr 18 2018 Kalev Lember <klember@redhat.com> - 3.22.30-1 * Wed Apr 18 2018 Kalev Lember <klember@redhat.com> - 3.22.30-1
- Update to 3.22.30 - Update to 3.22.30