Skip to content
Commits on Source (32)
node {
stage('Checkout') {
checkout scm
}
stage('Source build') {
sh "hypra-build-source"
}
stage('Binary amd64 build') {
sh "hypra-build-binaries amd64"
}
stage('Binary i386 build') {
sh "hypra-build-binaries i386"
}
stage('Publish to repository') {
sh "hypra-reprepro-include"
}
stage('Archive build output') {
archiveArtifacts artifacts: '*'
}
}
gtk+3.0 (3.22.11-1+hypra4) stretch; urgency=medium
[ Samuel Thibault ]
* patches/contrast: Take upstream commit.
* patches/expander: Restore expander size.
* patches/refresh-gtkresources: Refresh gtkresources.c file.
* patches/control-enter: Fix speaking control-tab/enter/etc.
[ Alex ARNAUD ]
* Import upstream patch to "avoids black flicker on compositing WMs
when a window is first shown."
* add a patch to ensure the start of xvfb for the test suite
[ Colomban Wendling ]
* patches/tab-contrast: Improve contrast on inactive notebook tabs in
the HighContrast theme.
* patches/window-flicker: New patch to avoid white flash on Compiz with
color inverted display.
-- Alex ARNAUD <alexarnaud@hypra.fr> Wed, 05 Jun 2019 11:30:26 +0200
gtk+3.0 (3.22.11-1+hypra3) stretch; urgency=medium
[ Samuel Thibault ]
* patches/contrast: Fix caja file renaming colors in high-contrast themes.
-- Cyril Brulebois <cyril@debamax.com> Sat, 28 Apr 2018 02:03:40 +0200
gtk+3.0 (3.22.11-1+hypra2) stretch; urgency=medium
[ Alex ARNAUD ]
* Add patch 0001-Enter-submenus-when-activating-their-parent-item.patch
-- Cyril Brulebois <cyril@debamax.com> Mon, 23 Apr 2018 18:17:16 +0200
gtk+3.0 (3.22.11-1+hypra1~0) stretch; urgency=medium
[ Samuel Thibault ]
* patches/fix-entry-coords: Fix coordinates of entry widget for ezoom.
-- Cyril Brulebois <cyril@debamax.com> Thu, 19 Apr 2018 12:31:06 +0200
gtk+3.0 (3.22.11-1) unstable; urgency=medium
* New upstream release.
......
......@@ -13,10 +13,10 @@ Build-Depends: debhelper (>= 9.20141010),
docbook-xsl,
pkg-config,
autotools-dev,
dbus <!nocheck>,
gsettings-desktop-schemas <!nocheck>,
adwaita-icon-theme <!nocheck>,
at-spi2-core <!nocheck>,
dbus,
gsettings-desktop-schemas,
adwaita-icon-theme,
at-spi2-core,
libglib2.0-dev (>= 2.49.4),
libgdk-pixbuf2.0-dev (>= 2.30.0),
libpango1.0-dev (>= 1.37.3),
......@@ -47,9 +47,9 @@ Build-Depends: debhelper (>= 9.20141010),
libjson-glib-dev,
gobject-introspection (>= 1.41.3),
libgirepository1.0-dev (>= 1.39.0),
xauth <!nocheck>,
xauth,
xsltproc,
xvfb <!nocheck>,
xvfb,
Build-Depends-Indep: libglib2.0-doc,
libatk1.0-doc,
libpango1.0-doc,
......
......@@ -13,10 +13,10 @@ Build-Depends: debhelper (>= 9.20141010),
docbook-xsl,
pkg-config,
autotools-dev,
dbus <!nocheck>,
gsettings-desktop-schemas <!nocheck>,
adwaita-icon-theme <!nocheck>,
at-spi2-core <!nocheck>,
dbus,
gsettings-desktop-schemas,
adwaita-icon-theme,
at-spi2-core,
libglib2.0-dev (>= 2.49.4),
libgdk-pixbuf2.0-dev (>= 2.30.0),
libpango1.0-dev (>= 1.37.3),
......@@ -47,9 +47,9 @@ Build-Depends: debhelper (>= 9.20141010),
libjson-glib-dev,
gobject-introspection (>= 1.41.3),
libgirepository1.0-dev (>= 1.39.0),
xauth <!nocheck>,
xauth,
xsltproc,
xvfb <!nocheck>,
xvfb,
Build-Depends-Indep: libglib2.0-doc,
libatk1.0-doc,
libpango1.0-doc,
......
commit e4754a007b70a9a69cdd468c6ad4b9e560d6fa83
Author: Colomban Wendling <cwendling@hypra.fr>
Date: Thu Feb 16 17:36:17 2017 +0100
Enter submenus when activating their parent item
This gives consistent behavior with e.g. Qt, Mozilla's suites and
LibreOffice (with non-truly native backends like "gen" and "gtk",
but unlike "gtk2" and "gtk3" ones that probably use true GTK menus).
This behavior is expected by at least some accessibility users, and
it seems good to behave like other common applications and toolkits
in this area. There should be no issue in doing so either for current
users, as it only enters the submenu instead of not doing anything.
https://bugzilla.gnome.org/show_bug.cgi?id=778811
index b/gtk/gtkmenushell.c
===================================================================
Index: gtk3/gtk/gtkmenushell.c
===================================================================
--- gtk3.orig/gtk/gtkmenushell.c
+++ gtk3/gtk/gtkmenushell.c
@@ -1675,7 +1675,7 @@ gtk_real_menu_shell_activate_current (Gt
priv->active_menu_item,
force_hide);
else
- _gtk_menu_item_popup_submenu (priv->active_menu_item, FALSE);
+ gtk_menu_shell_select_submenu_first (menu_shell);
}
}
From bfc3c8281db3359af81f09f62a95734b21952916 Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
Date: Fri, 4 May 2018 11:26:15 +0200
Subject: [PATCH] x11: Make windows transparent by default
This avoids black flicker on compositing WMs when a window is first shown.
---
gdk/x11/gdkwindow-x11.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 70daed9b6d..e484b58253 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -1147,6 +1147,9 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display,
if (attributes_mask & GDK_WA_TYPE_HINT)
gdk_window_set_type_hint (window, attributes->type_hint);
+ if (!window->input_only)
+ gdk_window_x11_set_background (window, NULL);
+
gdk_x11_event_source_select_events ((GdkEventSource *) display_x11->event_source,
GDK_WINDOW_XID (window), event_mask,
StructureNotifyMask | PropertyChangeMask);
--
2.17.0
commit 083cd79ab0064818b91d13fe5ee7a97d5dfe86f4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Wed Nov 28 18:40:08 2018 +0100
gdk: switch focus to contextual menu
in addition to taking a grab, to make sure that it is considered active
and not other toplevels, notably by the accessibility layer.
01455399e83a ("gdk: do not deactivate surface on keyboard grabs") disabled
deactivating surfaces when a grab is ongoing, to avoid noise when using
desktop keyboard shortcuts. When the application itself is grabbing the
keyboard from another toplevel, very notably for contextual menus, we
however do want to deactivate the current surface, so that the grabbing
toplevel shows up as having the focus.
This also fixes a bug in gdk_x11_surface_focus: when the surface is
temporary, the window manager does not handle it and will ignore any wm
hint, so we need to directly use XSetInputFocus.
Fixes #85
---
gdk/x11/gdkwindow-x11.c | 3 ++-
gtk/gtkmenu.c | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -2263,7 +2263,8 @@ gdk_x11_window_focus (GdkWindow *window,
display = GDK_WINDOW_DISPLAY (window);
- if (gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
+ if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_TEMP &&
+ gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
gdk_atom_intern_static_string ("_NET_ACTIVE_WINDOW")))
{
XClientMessageEvent xclient;
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -2004,6 +2004,8 @@ gtk_menu_popup_internal (GtkMenu
_gtk_menu_shell_set_keyboard_mode (menu_shell, TRUE);
_gtk_menu_shell_update_mnemonics (menu_shell);
+
+ gtk_window_present (GTK_WINDOW (priv->toplevel));
}
/**
commit 4c61ff2a3ad438cfc092105466a2fb0bd5ef745f
Author: Daniel Boles <dboles.src@gmail.com>
Date: Wed Jun 20 18:32:49 2018 +0100
HC: Avoid same BG/FG colors in flat treeview entry
Selected rows in tree views in HighContrast have a background colour the
same or nearly as the normal text colour, so we cannot let entries in
such rows have transparent backgrounds, or the text inside the entry
becomes nearly or totally impossible to see.
Dodge this by giving entry.flat inside treeview and with :focus the
$base_color, which is different from the text & so lets that be seen.
https://gitlab.gnome.org/GNOME/gtk/merge_requests/125
Index: gtk+3.0-3.22.2/gtk/theme/HighContrast/_common.scss
===================================================================
--- gtk+3.0-3.22.2.orig/gtk/theme/HighContrast/_common.scss
+++ gtk+3.0-3.22.2/gtk/theme/HighContrast/_common.scss
@@ -211,6 +211,9 @@ entry {
border-color: transparent;
border-radius: 0;
}
+
+ // Dodge transparency in selected treeview row, else bg & fg end up same
+ treeview &:focus { background-color: $base_color; }
}
&:focus { @include entry(focus); }
Index: gtk+3.0-3.22.2/gtk/theme/HighContrast/gtk-contained-inverse.css
===================================================================
--- gtk+3.0-3.22.2.orig/gtk/theme/HighContrast/gtk-contained-inverse.css
+++ gtk+3.0-3.22.2/gtk/theme/HighContrast/gtk-contained-inverse.css
@@ -188,6 +188,9 @@ entry {
background-image: none;
border-color: transparent;
border-radius: 0; }
+ treeview spinbutton.flat:focus:not(.vertical),
+ treeview entry.flat:focus {
+ background-color: #111; }
spinbutton:focus:not(.vertical),
entry:focus {
background-color: transparent;
Index: gtk+3.0-3.22.2/gtk/theme/HighContrast/gtk-contained.css
===================================================================
--- gtk+3.0-3.22.2.orig/gtk/theme/HighContrast/gtk-contained.css
+++ gtk+3.0-3.22.2/gtk/theme/HighContrast/gtk-contained.css
@@ -188,6 +188,9 @@ entry {
background-image: none;
border-color: transparent;
border-radius: 0; }
+ treeview spinbutton.flat:focus:not(.vertical),
+ treeview entry.flat:focus {
+ background-color: #fff; }
spinbutton:focus:not(.vertical),
entry:focus {
background-color: transparent;
commit 728f6869cba6360b843a83fe5b525404accb1433
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Fri Feb 15 13:33:52 2019 +0100
atk key: Always convert control character events into key names
including when the control modifier is present, i.e. when one is typing
control-I for instance.
Orca would convert them back to the corresponding ASCII letter anyway, and
when pressing control-tab, we do want to pass "tab", not pass "\t" that Orca
would erroneously convert to "control-I".
Fixes #1743
diff --git a/gtk/a11y/gtkaccessibilityutil.c b/gtk/a11y/gtkaccessibilityutil.c
index df6deb84e9..1ba892bad5 100644
--- a/gtk/a11y/gtkaccessibilityutil.c
+++ b/gtk/a11y/gtkaccessibilityutil.c
@@ -123,8 +123,7 @@ atk_key_event_from_gdk_event_key (GdkEventKey *key,
event->keyval = key->keyval;
event->length = key->length;
if (key->string && key->string[0] &&
- (key->state & GDK_CONTROL_MASK ||
- g_unichar_isgraph (g_utf8_get_char (key->string))))
+ g_unichar_isgraph (g_utf8_get_char (key->string)))
event->string = key->string;
else
event->string = gdk_keyval_name (key->keyval);
Index: gtk3/Makefile.decl
===================================================================
--- gtk3.orig/Makefile.decl
+++ gtk3/Makefile.decl
@@ -36,7 +36,7 @@ XVFB_START = \
&& { ${XVFB} :$$XID -nolisten tcp -auth /dev/null >/dev/null 2>&1 & \
trap "kill -15 $$! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } \
|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
- && DISPLAY=:$$XID && export DISPLAY
+ && sleep 1s && DISPLAY=:$$XID && export DISPLAY
# call as: $(XVFB_START) && someprogram
# test: run all tests in cwd and subdirs
diff --git a/gtk/theme/HighContrast/_common.scss b/gtk/theme/HighContrast/_common.scss
index 56cc79f..b188212 100644
--- a/gtk/theme/HighContrast/_common.scss
+++ b/gtk/theme/HighContrast/_common.scss
@@ -1297,7 +1297,7 @@ treeview.view {
-GtkTreeView-grid-line-pattern: '';
-GtkTreeView-tree-line-width: 1;
-GtkTreeView-tree-line-pattern: '';
- -GtkTreeView-expander-size: 16;
+ -GtkTreeView-expander-size: 24;
border-left-color: mix($fg_color, $base_color, 50%); // this is actually the tree lines color,
border-top-color: $bg_color; // while this is the grid lines color, better then nothing
@@ -2745,8 +2745,8 @@ row.activatable {
expander {
& arrow {
- min-width: 16px;
- min-height: 16px;
+ min-width: 24px;
+ min-height: 24px;
-gtk-icon-source: -gtk-icontheme('pan-end-symbolic');
&:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl'); }
&:hover { color: lighten($fg_color,30%); } //only lightens the arrow
diff --git a/gtk/theme/HighContrast/gtk-contained-inverse.css b/gtk/theme/HighContrast/gtk-contained-inverse.css
index 7d85af9..23c4ce6 100644
--- a/gtk/theme/HighContrast/gtk-contained-inverse.css
+++ b/gtk/theme/HighContrast/gtk-contained-inverse.css
@@ -1443,7 +1443,7 @@ treeview.view {
-GtkTreeView-grid-line-pattern: '';
-GtkTreeView-tree-line-width: 1;
-GtkTreeView-tree-line-pattern: '';
- -GtkTreeView-expander-size: 16;
+ -GtkTreeView-expander-size: 24;
border-left-color: #888888;
border-top-color: #000; }
treeview.view:selected {
@@ -2845,8 +2845,8 @@ row.activatable {
* Expanders *
*************/
expander arrow {
- min-width: 16px;
- min-height: 16px;
+ min-width: 24px;
+ min-height: 24px;
-gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); }
expander arrow:dir(rtl) {
-gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); }
diff --git a/gtk/theme/HighContrast/gtk-contained.css b/gtk/theme/HighContrast/gtk-contained.css
index 108ba28..74a991b 100644
--- a/gtk/theme/HighContrast/gtk-contained.css
+++ b/gtk/theme/HighContrast/gtk-contained.css
@@ -1447,7 +1447,7 @@ treeview.view {
-GtkTreeView-grid-line-pattern: '';
-GtkTreeView-tree-line-width: 1;
-GtkTreeView-tree-line-pattern: '';
- -GtkTreeView-expander-size: 16;
+ -GtkTreeView-expander-size: 24;
border-left-color: gray;
border-top-color: #fff; }
treeview.view:selected {
@@ -2852,8 +2852,8 @@ row.activatable {
* Expanders *
*************/
expander arrow {
- min-width: 16px;
- min-height: 16px;
+ min-width: 24px;
+ min-height: 24px;
-gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); }
expander arrow:dir(rtl) {
-gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); }
commit 9af088693a5087a4d82fe14305d67444755b0fcc
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Oct 5 15:49:00 2017 +0000
a11y/entry: Fix text coords not adjusted for alloc
What is missing is the "allocation" part of x/y coordinates. Since
gtk_entry_realize doesn't call gtk_widget_set_window(priv->text_area),
the coordinates returned by gdk_window_get_origin don't include it.
This patch fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=784509
diff --git a/gtk/a11y/gtkentryaccessible.c b/gtk/a11y/gtkentryaccessible.c
index abbaef8e9e..9519b091c5 100644
--- a/gtk/a11y/gtkentryaccessible.c
+++ b/gtk/a11y/gtkentryaccessible.c
@@ -971,11 +971,14 @@ gtk_entry_accessible_get_character_extents (AtkText *text,
pango_layout_index_to_pos (gtk_entry_get_layout (entry), index, &char_rect);
pango_extents_to_pixels (&char_rect, NULL);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation (widget, &allocation);
+
window = gtk_widget_get_window (widget);
gdk_window_get_origin (window, &x_window, &y_window);
- *x = x_window + x_layout + char_rect.x;
- *y = y_window + y_layout + char_rect.y;
+ *x = x_window + allocation.x + x_layout + char_rect.x;
+ *y = y_window + allocation.y + y_layout + char_rect.y;
*width = char_rect.width;
*height = char_rect.height;
This diff is collapsed.
......@@ -6,3 +6,15 @@
no-accessibility-dump.patch
reftest-known-fail.patch
gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
fix-entry-coords
0001-Enter-submenus-when-activating-their-parent-item.patch
contrast
expander
Avoids_black_flicker_on_compositing_WMs_when_a_window_is_first_shown.patch
ensure_xvfb_start_for_test_suite.patch
#window-deactivate
#context_menu
control-enter
tab-contrast
refresh-gtkresources
window-flicker.patch
--- a/gtk/theme/HighContrast/_common.scss
+++ b/gtk/theme/HighContrast/_common.scss
@@ -1599,7 +1599,7 @@ notebook {
& header {
// FIXME: double borders in some case, can't fix it w/o a class tho
// FIXME: doesn't work on dark var
- background-color: mix($bg_color, $borders_color, 70%);
+ background-color: mix($bg_color, $borders_color, 85%);
// this is the shading of the header behind the tabs
.frame & {
@@ -1740,14 +1740,14 @@ notebook {
label { //tab text
padding: 0 2px; // needed for a nicer focus ring
font-weight: bold;
- color: $insensitive_fg_color; /* color: inherit doesn't work here */
+ color: mix($fg_color, $insensitive_fg_color, 50%); /* color: inherit doesn't work here */
&:backdrop {
color: $insensitive_fg_color;
}
}
&:hover label {
// prelight tab text
- color: mix($fg_color, $insensitive_fg_color, 50%);
+ color: mix($fg_color, $insensitive_fg_color, 75%);
}
&:checked label {
// active tab text
--- a/gtk/theme/HighContrast/gtk-contained-inverse.css
+++ b/gtk/theme/HighContrast/gtk-contained-inverse.css
@@ -140,8 +140,7 @@ spinner {
/****************
* Text Entries *
****************/
-spinbutton:not(.vertical),
-entry {
+spinbutton:not(.vertical), entry {
min-height: 32px;
padding-left: 8px;
padding-right: 8px;
@@ -273,23 +272,23 @@ entry {
entry:drop(active) {
border-color: #fff;
box-shadow: inset 0 0 0 1px #fff; }
- .osd spinbutton:not(.vertical), .osd
- entry {
+ .osd spinbutton:not(.vertical),
+ .osd entry {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #090909, #111 90%); }
- .osd spinbutton:focus:not(.vertical), .osd
- entry:focus {
+ .osd spinbutton:focus:not(.vertical),
+ .osd entry:focus {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #090909, #111 90%); }
- .osd spinbutton:backdrop:not(.vertical), .osd
- entry:backdrop {
+ .osd spinbutton:backdrop:not(.vertical),
+ .osd entry:backdrop {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #090909, #111 90%); }
- .osd spinbutton:disabled:not(.vertical), .osd
- entry:disabled {
+ .osd spinbutton:disabled:not(.vertical),
+ .osd entry:disabled {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #090909, #111 90%); }
@@ -1274,8 +1273,7 @@ toolbar.inline-toolbar, searchbar.inline
/***************
* Header bars *
***************/
-.titlebar,
-headerbar {
+.titlebar, headerbar {
border-width: 0 0 1px;
border-style: solid;
border-color: gray;
@@ -1411,9 +1409,8 @@ headerbar {
border-width: 0;
background-image: none;
box-shadow: none; }
- .tiled .titlebar, .maximized .titlebar, .tiled
- headerbar, .maximized
- headerbar {
+ .tiled .titlebar, .maximized .titlebar,
+ .tiled headerbar, .maximized headerbar {
border-radius: 0; }
/************
@@ -1667,7 +1664,7 @@ notebook {
notebook.frame:backdrop {
border-color: #737373; }
notebook header {
- background-color: #262626; }
+ background-color: #131313; }
.frame notebook header {
border: 1px solid gray; }
.frame notebook header.top {
@@ -1829,12 +1826,12 @@ notebook {
notebook tab label {
padding: 0 2px;
font-weight: bold;
- color: gray;
+ color: silver;
/* color: inherit doesn't work here */ }
notebook tab label:backdrop {
color: gray; }
notebook tab:hover label {
- color: silver; }
+ color: #dfdfdf; }
notebook tab:checked label {
color: #fff; }
notebook tab:checked label:backdrop {
@@ -2117,8 +2114,7 @@ checkbutton.text-button, radiobutton.tex
checkbutton.text-button:disabled:active:backdrop, checkbutton.text-button:disabled:indeterminate:backdrop, checkbutton.text-button:disabled:backdrop, radiobutton.text-button:disabled:active:backdrop, radiobutton.text-button:disabled:indeterminate:backdrop, radiobutton.text-button:disabled:backdrop {
color: gray; }
-check,
-radio {
+check, radio {
margin: 0 4px;
min-height: 14px;
min-width: 14px;
@@ -2173,47 +2169,43 @@ radio {
background-color: #070707;
border-color: #494949;
background-image: none; }
- .osd check, .osd
- radio {
+ .osd check,
+ .osd radio {
border-width: 2px;
border-style: solid;
color: #fff;
background-image: none;
background-color: rgba(0, 0, 0, 0.8);
border-color: rgba(255, 255, 255, 0.2); }
- .osd check:hover, .osd
- radio:hover {
+ .osd check:hover,
+ .osd radio:hover {
border-width: 2px;
border-style: solid;
color: #fff;
background-image: none;
background-color: rgba(0, 0, 0, 0.8);
border-color: rgba(255, 255, 255, 0.2); }
- .osd check:active, .osd
- radio:active {
+ .osd check:active,
+ .osd radio:active {
border-width: 2px;
border-style: solid;
color: rgba(0, 0, 0, 0.8);
background-color: #fff;
border-color: rgba(255, 255, 255, 0.2);
box-shadow: none; }
- .osd check:backdrop, .osd
- radio:backdrop {
+ .osd check:backdrop,
+ .osd radio:backdrop {
border-width: 2px;
border-style: solid; }
- .osd check:disabled, .osd
- radio:disabled {
+ .osd check:disabled,
+ .osd radio:disabled {
border-width: 2px;
border-style: solid;
border-color: rgba(255, 255, 255, 0.2);
color: gray; }
- menu menuitem check, menu menuitem
- radio {
+ menu menuitem check, menu menuitem radio {
margin: 0; }
- menu menuitem check, menu menuitem check:hover, menu menuitem check:disabled, menu menuitem
- radio, menu menuitem
- radio:hover, menu menuitem
- radio:disabled {
+ menu menuitem check, menu menuitem check:hover, menu menuitem check:disabled, menu menuitem radio, menu menuitem radio:hover, menu menuitem radio:disabled {
min-height: 14px;
min-width: 14px;
background-image: none;
--- a/gtk/theme/HighContrast/gtk-contained.css
+++ b/gtk/theme/HighContrast/gtk-contained.css
@@ -140,8 +140,7 @@ spinner {
/****************
* Text Entries *
****************/
-spinbutton:not(.vertical),
-entry {
+spinbutton:not(.vertical), entry {
min-height: 32px;
padding-left: 8px;
padding-right: 8px;
@@ -273,23 +272,23 @@ entry {
entry:drop(active) {
border-color: #000;
box-shadow: inset 0 0 0 1px #000; }
- .osd spinbutton:not(.vertical), .osd
- entry {
+ .osd spinbutton:not(.vertical),
+ .osd entry {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #f7f7f7, #fff 90%); }
- .osd spinbutton:focus:not(.vertical), .osd
- entry:focus {
+ .osd spinbutton:focus:not(.vertical),
+ .osd entry:focus {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #f7f7f7, #fff 90%); }
- .osd spinbutton:backdrop:not(.vertical), .osd
- entry:backdrop {
+ .osd spinbutton:backdrop:not(.vertical),
+ .osd entry:backdrop {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #f7f7f7, #fff 90%); }
- .osd spinbutton:disabled:not(.vertical), .osd
- entry:disabled {
+ .osd spinbutton:disabled:not(.vertical),
+ .osd entry:disabled {
background-color: transparent;
border-style: solid;
background-image: linear-gradient(to bottom, #f7f7f7, #fff 90%); }
@@ -1278,8 +1277,7 @@ toolbar.inline-toolbar, searchbar.inline
/***************
* Header bars *
***************/
-.titlebar,
-headerbar {
+.titlebar, headerbar {
border-width: 0 0 1px;
border-style: solid;
border-color: gray;
@@ -1415,9 +1413,8 @@ headerbar {
border-width: 0;
background-image: none;
box-shadow: none; }
- .tiled .titlebar, .maximized .titlebar, .tiled
- headerbar, .maximized
- headerbar {
+ .tiled .titlebar, .maximized .titlebar,
+ .tiled headerbar, .maximized headerbar {
border-radius: 0; }
/************
@@ -1671,7 +1668,7 @@ notebook {
notebook.frame:backdrop {
border-color: #8d8d8d; }
notebook header {
- background-color: #d9d9d9; }
+ background-color: #ececec; }
.frame notebook header {
border: 1px solid gray; }
.frame notebook header.top {
@@ -1833,12 +1830,12 @@ notebook {
notebook tab label {
padding: 0 2px;
font-weight: bold;
- color: gray;
+ color: #404040;
/* color: inherit doesn't work here */ }
notebook tab label:backdrop {
color: gray; }
notebook tab:hover label {
- color: #404040; }
+ color: #202020; }
notebook tab:checked label {
color: #000; }
notebook tab:checked label:backdrop {
@@ -2121,8 +2118,7 @@ checkbutton.text-button, radiobutton.tex
checkbutton.text-button:disabled:active:backdrop, checkbutton.text-button:disabled:indeterminate:backdrop, checkbutton.text-button:disabled:backdrop, radiobutton.text-button:disabled:active:backdrop, radiobutton.text-button:disabled:indeterminate:backdrop, radiobutton.text-button:disabled:backdrop {
color: gray; }
-check,
-radio {
+check, radio {
margin: 0 4px;
min-height: 14px;
min-width: 14px;
@@ -2177,50 +2173,41 @@ radio {
background-color: white;
border-color: silver;
background-image: none; }
- row:selected check, row:selected
- radio {
+ row:selected check,
+ row:selected radio {
border-color: #000; }
- .osd check, .osd
- radio {
+ .osd check, .osd radio {
border-width: 2px;
border-style: solid;
color: #fff;
background-image: none;
background-color: rgba(0, 0, 0, 0.8);
border-color: rgba(255, 255, 255, 0.2); }
- .osd check:hover, .osd
- radio:hover {
+ .osd check:hover, .osd radio:hover {
border-width: 2px;
border-style: solid;
color: #fff;
background-image: none;
background-color: rgba(0, 0, 0, 0.8);
border-color: rgba(255, 255, 255, 0.2); }
- .osd check:active, .osd
- radio:active {
+ .osd check:active, .osd radio:active {
border-width: 2px;
border-style: solid;
color: rgba(0, 0, 0, 0.8);
background-color: #fff;
border-color: rgba(255, 255, 255, 0.2);
box-shadow: none; }
- .osd check:backdrop, .osd
- radio:backdrop {
+ .osd check:backdrop, .osd radio:backdrop {
border-width: 2px;
border-style: solid; }
- .osd check:disabled, .osd
- radio:disabled {
+ .osd check:disabled, .osd radio:disabled {
border-width: 2px;
border-style: solid;
border-color: rgba(255, 255, 255, 0.2);
color: gray; }
- menu menuitem check, menu menuitem
- radio {
+ menu menuitem check, menu menuitem radio {
margin: 0; }
- menu menuitem check, menu menuitem check:hover, menu menuitem check:disabled, menu menuitem
- radio, menu menuitem
- radio:hover, menu menuitem
- radio:disabled {
+ menu menuitem check, menu menuitem check:hover, menu menuitem check:disabled, menu menuitem radio, menu menuitem radio:hover, menu menuitem radio:disabled {
min-height: 14px;
min-width: 14px;
background-image: none;
@@ -2647,7 +2634,7 @@ scrolledwindow viewport.frame {
border-style: none; }
placessidebar overshoot.top,
scrolledwindow overshoot.top {
- background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, center top, 0, center top, 0.6, from(rgba(0, 0, 0, 0.5)), to(transparent));
+ background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, center top, 0, center top, 0.6, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-size: 100% 5%, 100% 100%;
background-repeat: no-repeat;
background-position: center top;
@@ -2665,7 +2652,7 @@ scrolledwindow overshoot.top {
box-shadow: none; }
placessidebar overshoot.bottom,
scrolledwindow overshoot.bottom {
- background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, center bottom, 0, center bottom, 0.6, from(rgba(0, 0, 0, 0.5)), to(transparent));
+ background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, center bottom, 0, center bottom, 0.6, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-size: 100% 5%, 100% 100%;
background-repeat: no-repeat;
background-position: center bottom;
@@ -2683,7 +2670,7 @@ scrolledwindow overshoot.bottom {
box-shadow: none; }
placessidebar overshoot.left,
scrolledwindow overshoot.left {
- background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, left center, 0, left center, 0.6, from(rgba(0, 0, 0, 0.5)), to(transparent));
+ background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, left center, 0, left center, 0.6, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-size: 5% 100%, 100% 100%;
background-repeat: no-repeat;
background-position: left center;
@@ -2701,7 +2688,7 @@ scrolledwindow overshoot.left {
box-shadow: none; }
placessidebar overshoot.right,
scrolledwindow overshoot.right {
- background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, right center, 0, right center, 0.6, from(rgba(0, 0, 0, 0.5)), to(transparent));
+ background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#010101), to(rgba(1, 1, 1, 0))), -gtk-gradient(radial, right center, 0, right center, 0.6, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-size: 5% 100%, 100% 100%;
background-repeat: no-repeat;
background-position: right center;
commit c926b28d965dbae90b17d404d2c6d1e031a6f006
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Apr 19 14:10:23 2018 +0200
gdk: do not deactivate surface on keyboard grabs
When pressing e.g. a window manager shortcut, which acquires keyboard grab,
Xorg would send FocusOut NotifyGrab then FocusIn NotifyUngrab. Currently
gdk would then deactivate the current surface, which makes accessibility
screen readers think that we have switched to a non-accessible application
and came back again, and thus reannounce the application frame etc. which we
don't want when e.g. just raising volume.
And actually, receiving FocusOut NotifyGrab does not mean losing the
X focus, it only means an application aqcuired a grab, i.e. it is
temporarily stealing keyboard events. On Wayland, this isn't even
notified actually.
This commit makes gdk only deactivate surfaces when there was an actual
focus switch to another window, as determined by has_focus_window (instead
of just has_focus), which happens either normally through FocusOut with
NotifyNormal, or during grabs through FocusOut with NotifyWhileGrabbed.
Fixes #85
(cherry picked from commit 01455399e83a3dbafb0cdc6e12c7003b2f472a40)
diff --git a/gdk/x11/gdkdevicemanager-core-x11.c b/gdk/x11/gdkdevicemanager-core-x11.c
index 350a79b03f..7f7aa048aa 100644
--- a/gdk/x11/gdkdevicemanager-core-x11.c
+++ b/gdk/x11/gdkdevicemanager-core-x11.c
@@ -30,7 +30,7 @@
#define HAS_FOCUS(toplevel) \
- ((toplevel)->has_focus || (toplevel)->has_pointer_focus)
+ ((toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
static void gdk_x11_device_manager_core_finalize (GObject *object);
static void gdk_x11_device_manager_core_constructed (GObject *object);
diff --git a/gdk/x11/gdkeventsource.c b/gdk/x11/gdkeventsource.c
index 774d10c528..590e597c75 100644
--- a/gdk/x11/gdkeventsource.c
+++ b/gdk/x11/gdkeventsource.c
@@ -33,7 +33,7 @@ static gboolean gdk_event_source_dispatch (GSource *source,
static void gdk_event_source_finalize (GSource *source);
#define HAS_FOCUS(toplevel) \
- ((toplevel)->has_focus || (toplevel)->has_pointer_focus)
+ ((toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
struct _GdkEventSource
{
commit 039285deb92b6baf6ef594b0d718e8f7a7e1d0ac
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Fri Jun 1 16:43:01 2018 +0200
gdk: activate surface on keyboard grabs
In 01455399e83a ("gdk: do not deactivate surface on keyboard grabs"), we
made gdk avoid deactivating surfaces when another application takes a
keyboard grab, by using has_focus_window instead of has_focus. That however
broke activating surfaces when the gdk application acquired a grab itself,
in which case has_focus_window is false but has_focus is true.
We thus actually need to use both: surfaces should be activated either
because we have normal keyboard focus, or because we grabbed the keyboard.
Fixes #85
(cherry picked from commit 3287ac96e02ff236d74db10164c5b0c1e7b2b0bf)
diff --git a/gdk/x11/gdkdevicemanager-core-x11.c b/gdk/x11/gdkdevicemanager-core-x11.c
index 7f7aa048aa..80c284245e 100644
--- a/gdk/x11/gdkdevicemanager-core-x11.c
+++ b/gdk/x11/gdkdevicemanager-core-x11.c
@@ -30,7 +30,7 @@
#define HAS_FOCUS(toplevel) \
- ((toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
+ ((toplevel)->has_focus || (toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
static void gdk_x11_device_manager_core_finalize (GObject *object);
static void gdk_x11_device_manager_core_constructed (GObject *object);
diff --git a/gdk/x11/gdkeventsource.c b/gdk/x11/gdkeventsource.c
index 590e597c75..b09f381981 100644
--- a/gdk/x11/gdkeventsource.c
+++ b/gdk/x11/gdkeventsource.c
@@ -33,7 +33,7 @@ static gboolean gdk_event_source_dispatch (GSource *source,
static void gdk_event_source_finalize (GSource *source);
#define HAS_FOCUS(toplevel) \
- ((toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
+ ((toplevel)->has_focus || (toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
struct _GdkEventSource
{
Avoid white flashes when the display colors are inverted
Paint the window background white and hope the user has an overally
light UI theme, so the default window background is roughly the same
color as the theme's.
This fixes white flashes visible with Compiz 0.9 and inverted colors.
For windows with no alpha channel the current state of not filling the
background at all will result with effectively a "capture" or the
display under the window. Thus, the window content will be the
effective displayed content after inversion, and thus an inversion of
that window's content will result in a "double inversion", leading to
maximum contrast and thus a "white flash" when using a light theme
(which becomes dark after inversion).
Filling the window with a plain color close to the theme's one will
prevent this effect.
---
The flash actually seems to come from Compiz's window decorations, and
thus a better fix would be on Compiz's side, but it seems higly tricky
and Compiz-Reloaded doesn't suffer from the issue, meaning we will be
able to drop this patch at some point in the future without further
work involved.
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -106,6 +106,11 @@ static void set_wm_name
Window xwindow,
const gchar *name);
static void move_to_current_desktop (GdkWindow *window);
+static gboolean gdk_window_x11_set_back_color (GdkWindow *window,
+ double red,
+ double green,
+ double blue,
+ double alpha);
static void gdk_window_x11_set_background (GdkWindow *window,
cairo_pattern_t *pattern);
@@ -1148,7 +1153,7 @@ _gdk_x11_display_create_window_impl (Gdk
gdk_window_set_type_hint (window, attributes->type_hint);
if (!window->input_only)
- gdk_window_x11_set_background (window, NULL);
+ gdk_window_x11_set_back_color (window, 1.0, 1.0, 1.0, 1.0);
gdk_x11_event_source_select_events ((GdkEventSource *) display_x11->event_source,
GDK_WINDOW_XID (window), event_mask,
extend-diff-ignore = Jenkinsfile