import gnome-shell-40.10-3.el9
This commit is contained in:
		
							parent
							
								
									dc17f2faee
								
							
						
					
					
						commit
						0d268b79f6
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | |||||||
| SOURCES/gnome-shell-40.9.tar.xz | SOURCES/gnome-shell-40.10.tar.xz | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| 83b12b5c9ca17de4e1d6e3c8d7371369957976c1 SOURCES/gnome-shell-40.9.tar.xz | c955a004fb650a83863d1151e3adbbd6758b1c2e SOURCES/gnome-shell-40.10.tar.xz | ||||||
|  | |||||||
| @ -0,0 +1,25 @@ | |||||||
|  | From a8c8b7ef31f7219157b94148b771f6f663928dea Mon Sep 17 00:00:00 2001 | ||||||
|  | From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> | ||||||
|  | Date: Tue, 19 Apr 2022 19:17:48 +0200 | ||||||
|  | Subject: [PATCH] Revert "dash: Subtract vertical margins from availHeight" | ||||||
|  | 
 | ||||||
|  | This reverts commit 0de0a1f5940784eb4a7ca9ecf5e92f5277ceb0d8. | ||||||
|  | ---
 | ||||||
|  |  js/ui/dash.js | 1 - | ||||||
|  |  1 file changed, 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/js/ui/dash.js b/js/ui/dash.js
 | ||||||
|  | index f35cc2e25..0f1ca2c4c 100644
 | ||||||
|  | --- a/js/ui/dash.js
 | ||||||
|  | +++ b/js/ui/dash.js
 | ||||||
|  | @@ -610,7 +610,6 @@ var Dash = GObject.registerClass({
 | ||||||
|  |                         (iconChildren.length - 1) * spacing; | ||||||
|  |   | ||||||
|  |          let availHeight = this._maxHeight; | ||||||
|  | -        availHeight -= this.margin_top + this.margin_bottom;
 | ||||||
|  |          availHeight -= this._background.get_theme_node().get_vertical_padding(); | ||||||
|  |          availHeight -= themeNode.get_vertical_padding(); | ||||||
|  |          availHeight -= buttonHeight - iconHeight; | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										51
									
								
								SOURCES/0001-kbdA11yDialog-Use-MetaKeyboardA11yFlags.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								SOURCES/0001-kbdA11yDialog-Use-MetaKeyboardA11yFlags.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | From bd4fef8354ff0730c1e96a47d77adbb4a4d7beaa Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Olivier Fourdan <ofourdan@redhat.com> | ||||||
|  | Date: Tue, 14 Jun 2022 16:38:27 +0200 | ||||||
|  | Subject: [PATCH] kbdA11yDialog: Use MetaKeyboardA11yFlags | ||||||
|  | 
 | ||||||
|  | The change in mutter to move keyboard accessibility into backends needs | ||||||
|  | to be applied in gnome-shell as well, otherwise the keyboard | ||||||
|  | accessibility dialog cannot work. | ||||||
|  | 
 | ||||||
|  | Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2306 | ||||||
|  | Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2334> | ||||||
|  | ---
 | ||||||
|  |  js/ui/kbdA11yDialog.js | 10 +++++----- | ||||||
|  |  1 file changed, 5 insertions(+), 5 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/js/ui/kbdA11yDialog.js b/js/ui/kbdA11yDialog.js
 | ||||||
|  | index a45e02443..60ec161a6 100644
 | ||||||
|  | --- a/js/ui/kbdA11yDialog.js
 | ||||||
|  | +++ b/js/ui/kbdA11yDialog.js
 | ||||||
|  | @@ -1,5 +1,5 @@
 | ||||||
|  |  /* exported KbdA11yDialog */ | ||||||
|  | -const { Clutter, Gio, GObject } = imports.gi;
 | ||||||
|  | +const { Clutter, Gio, GObject, Meta } = imports.gi;
 | ||||||
|  |   | ||||||
|  |  const Dialog = imports.ui.dialog; | ||||||
|  |  const ModalDialog = imports.ui.modalDialog; | ||||||
|  | @@ -25,17 +25,17 @@ class KbdA11yDialog extends GObject.Object {
 | ||||||
|  |          let title, description; | ||||||
|  |          let key, enabled; | ||||||
|  |   | ||||||
|  | -        if (whatChanged & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) {
 | ||||||
|  | +        if (whatChanged & Meta.KeyboardA11yFlags.SLOW_KEYS_ENABLED) {
 | ||||||
|  |              key = KEY_SLOW_KEYS_ENABLED; | ||||||
|  | -            enabled = (newFlags & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) > 0;
 | ||||||
|  | +            enabled = (newFlags & Meta.KeyboardA11yFlags.SLOW_KEYS_ENABLED) > 0;
 | ||||||
|  |              title = enabled | ||||||
|  |                  ? _("Slow Keys Turned On") | ||||||
|  |                  : _("Slow Keys Turned Off"); | ||||||
|  |              description = _('You just held down the Shift key for 8 seconds. This is the shortcut ' + | ||||||
|  |                              'for the Slow Keys feature, which affects the way your keyboard works.'); | ||||||
|  | -        } else if (whatChanged & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) {
 | ||||||
|  | +        } else if (whatChanged & Meta.KeyboardA11yFlags.STICKY_KEYS_ENABLED) {
 | ||||||
|  |              key = KEY_STICKY_KEYS_ENABLED; | ||||||
|  | -            enabled = (newFlags & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) > 0;
 | ||||||
|  | +            enabled = (newFlags & Meta.KeyboardA11yFlags.STICKY_KEYS_ENABLED) > 0;
 | ||||||
|  |              title = enabled | ||||||
|  |                  ? _("Sticky Keys Turned On") | ||||||
|  |                  : _("Sticky Keys Turned Off"); | ||||||
|  | -- 
 | ||||||
|  | 2.36.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										30
									
								
								SOURCES/0001-status-volume-Hide-sliders-initially.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								SOURCES/0001-status-volume-Hide-sliders-initially.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | |||||||
|  | From b212b973175be1cbefa1da2c5ed4f58fae032c73 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> | ||||||
|  | Date: Wed, 11 May 2022 02:34:21 +0200 | ||||||
|  | Subject: [PATCH] status/volume: Hide sliders initially | ||||||
|  | 
 | ||||||
|  | We update the visibility on state or stream changes, but those | ||||||
|  | changes may never happen if pipewire-pulse/pulseaudio isn't | ||||||
|  | available (for example when running as root). | ||||||
|  | 
 | ||||||
|  | Hiding the sliders is preferable in that case to showing non-working | ||||||
|  | controls. | ||||||
|  | ---
 | ||||||
|  |  js/ui/status/volume.js | 1 + | ||||||
|  |  1 file changed, 1 insertion(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js
 | ||||||
|  | index 7164e1054..f623ee680 100644
 | ||||||
|  | --- a/js/ui/status/volume.js
 | ||||||
|  | +++ b/js/ui/status/volume.js
 | ||||||
|  | @@ -34,6 +34,7 @@ var StreamSlider = class {
 | ||||||
|  |          this._control = control; | ||||||
|  |   | ||||||
|  |          this.item = new PopupMenu.PopupBaseMenuItem({ activate: false }); | ||||||
|  | +        this.item.hide();
 | ||||||
|  |   | ||||||
|  |          this._inDrag = false; | ||||||
|  |          this._notifyVolumeChangeId = 0; | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										334
									
								
								SOURCES/fix-markup-in-highlighter.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										334
									
								
								SOURCES/fix-markup-in-highlighter.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,334 @@ | |||||||
|  | From 49a950b9e0dc262fd20c28e21ee4815ea8efe758 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Sebastian Keller <skeller@gnome.org> | ||||||
|  | Date: Tue, 16 Nov 2021 18:57:26 +0100 | ||||||
|  | Subject: [PATCH 1/3] search: Split out the description highlighter into its | ||||||
|  |  own class | ||||||
|  | 
 | ||||||
|  | No functional change yet, only preparation to allow adding a unit test | ||||||
|  | later on. | ||||||
|  | 
 | ||||||
|  | Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2033> | ||||||
|  | ---
 | ||||||
|  |  js/misc/util.js | 38 +++++++++++++++++++++++++++++++++++++- | ||||||
|  |  js/ui/search.js | 12 +++++------- | ||||||
|  |  2 files changed, 42 insertions(+), 8 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/js/misc/util.js b/js/misc/util.js
 | ||||||
|  | index 8139d3f47..d1a702960 100644
 | ||||||
|  | --- a/js/misc/util.js
 | ||||||
|  | +++ b/js/misc/util.js
 | ||||||
|  | @@ -1,7 +1,8 @@
 | ||||||
|  |  // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- | ||||||
|  |  /* exported findUrls, spawn, spawnCommandLine, spawnApp, trySpawnCommandLine, | ||||||
|  |              formatTime, formatTimeSpan, createTimeLabel, insertSorted, | ||||||
|  | -            ensureActorVisibleInScrollView, wiggle, lerp, GNOMEversionCompare */
 | ||||||
|  | +            ensureActorVisibleInScrollView, wiggle, lerp, GNOMEversionCompare,
 | ||||||
|  | +            Highlighter */
 | ||||||
|  |   | ||||||
|  |  const { Clutter, Gio, GLib, Shell, St, GnomeDesktop } = imports.gi; | ||||||
|  |  const Gettext = imports.gettext; | ||||||
|  | @@ -477,3 +478,38 @@ function GNOMEversionCompare(version1, version2) {
 | ||||||
|  |   | ||||||
|  |      return 0; | ||||||
|  |  } | ||||||
|  | +
 | ||||||
|  | +/* @class Highlighter Highlight given terms in text using markup. */
 | ||||||
|  | +var Highlighter = class {
 | ||||||
|  | +    /**
 | ||||||
|  | +     * @param {?string[]} terms - list of terms to highlight
 | ||||||
|  | +     */
 | ||||||
|  | +    constructor(terms) {
 | ||||||
|  | +        if (!terms)
 | ||||||
|  | +            return;
 | ||||||
|  | +
 | ||||||
|  | +        const escapedTerms = terms
 | ||||||
|  | +            .map(term => Shell.util_regex_escape(term))
 | ||||||
|  | +            .filter(term => term.length > 0);
 | ||||||
|  | +
 | ||||||
|  | +        if (escapedTerms.length === 0)
 | ||||||
|  | +            return;
 | ||||||
|  | +
 | ||||||
|  | +        this._highlightRegex = new RegExp('(%s)'.format(
 | ||||||
|  | +            escapedTerms.join('|')), 'gi');
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +    /**
 | ||||||
|  | +     * Highlight all occurences of the terms defined for this
 | ||||||
|  | +     * highlighter in the provided text using markup.
 | ||||||
|  | +     *
 | ||||||
|  | +     * @param {string} text - text to highlight the defined terms in
 | ||||||
|  | +     * @returns {string}
 | ||||||
|  | +     */
 | ||||||
|  | +    highlight(text) {
 | ||||||
|  | +        if (!this._highlightRegex)
 | ||||||
|  | +            return text;
 | ||||||
|  | +
 | ||||||
|  | +        return text.replace(this._highlightRegex, '<b>$1</b>');
 | ||||||
|  | +    }
 | ||||||
|  | +};
 | ||||||
|  | diff --git a/js/ui/search.js b/js/ui/search.js
 | ||||||
|  | index 7300b053e..b1e76c46d 100644
 | ||||||
|  | --- a/js/ui/search.js
 | ||||||
|  | +++ b/js/ui/search.js
 | ||||||
|  | @@ -10,6 +10,8 @@ const ParentalControlsManager = imports.misc.parentalControlsManager;
 | ||||||
|  |  const RemoteSearch = imports.ui.remoteSearch; | ||||||
|  |  const Util = imports.misc.util; | ||||||
|  |   | ||||||
|  | +const { Highlighter } = imports.misc.util;
 | ||||||
|  | +
 | ||||||
|  |  const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers'; | ||||||
|  |   | ||||||
|  |  var MAX_LIST_SEARCH_RESULTS_ROWS = 5; | ||||||
|  | @@ -596,7 +598,7 @@ var SearchResultsView = GObject.registerClass({
 | ||||||
|  |   | ||||||
|  |          this._providers = []; | ||||||
|  |   | ||||||
|  | -        this._highlightRegex = null;
 | ||||||
|  | +        this._highlighter = new Highlighter();
 | ||||||
|  |   | ||||||
|  |          this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA }); | ||||||
|  |          this._searchSettings.connect('changed::disabled', this._reloadRemoteProviders.bind(this)); | ||||||
|  | @@ -739,8 +741,7 @@ var SearchResultsView = GObject.registerClass({
 | ||||||
|  |          if (this._searchTimeoutId == 0) | ||||||
|  |              this._searchTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 150, this._onSearchTimeout.bind(this)); | ||||||
|  |   | ||||||
|  | -        let escapedTerms = this._terms.map(term => Shell.util_regex_escape(term));
 | ||||||
|  | -        this._highlightRegex = new RegExp('(%s)'.format(escapedTerms.join('|')), 'gi');
 | ||||||
|  | +        this._highlighter = new Highlighter(this._terms);
 | ||||||
|  |   | ||||||
|  |          this.emit('terms-changed'); | ||||||
|  |      } | ||||||
|  | @@ -894,10 +895,7 @@ var SearchResultsView = GObject.registerClass({
 | ||||||
|  |          if (!description) | ||||||
|  |              return ''; | ||||||
|  |   | ||||||
|  | -        if (!this._highlightRegex)
 | ||||||
|  | -            return description;
 | ||||||
|  | -
 | ||||||
|  | -        return description.replace(this._highlightRegex, '<b>$1</b>');
 | ||||||
|  | +        return this._highlighter.highlight(description);
 | ||||||
|  |      } | ||||||
|  |  }); | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | From 7c1abe1bd91ecf274d81e122035cbeeef6fd58d4 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Sebastian Keller <skeller@gnome.org> | ||||||
|  | Date: Wed, 17 Nov 2021 02:50:39 +0100 | ||||||
|  | Subject: [PATCH 2/3] util: Properly handle markup in highlighter | ||||||
|  | 
 | ||||||
|  | The code to highlight matches did not properly escape the passed in text | ||||||
|  | as for markup before adding its highlighting markup. This lead to some | ||||||
|  | search result descriptions not showing up, because their descriptions | ||||||
|  | contained characters, such as "<", that would have to be escaped when | ||||||
|  | used in markup or otherwise lead to invalid markup. | ||||||
|  | 
 | ||||||
|  | To work around this some search providers wrongly started escaping the | ||||||
|  | description on their end before sending them to gnome-shell. This lead | ||||||
|  | to another issue. Now if the highlighter was trying to highlight the | ||||||
|  | term "a", and the escaped description contained "'", the "a" in | ||||||
|  | that would be considered a match and surrounded by "<b></b>". This | ||||||
|  | however would also generate invalid markup, again leading to an error | ||||||
|  | and the description not being shown. | ||||||
|  | 
 | ||||||
|  | Fix this by always escaping the passed in string before applying the | ||||||
|  | highlights in such a way that there are no matches within entities. | ||||||
|  | 
 | ||||||
|  | This also means that search providers that escaped their description | ||||||
|  | strings will now show up with the markup syntax. This will have to be | ||||||
|  | fixed separately in the affected search providers. | ||||||
|  | 
 | ||||||
|  | Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4791 | ||||||
|  | Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2033> | ||||||
|  | ---
 | ||||||
|  |  js/misc/util.js | 21 +++++++++++++++++++-- | ||||||
|  |  1 file changed, 19 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/js/misc/util.js b/js/misc/util.js
 | ||||||
|  | index d1a702960..802398d18 100644
 | ||||||
|  | --- a/js/misc/util.js
 | ||||||
|  | +++ b/js/misc/util.js
 | ||||||
|  | @@ -508,8 +508,25 @@ var Highlighter = class {
 | ||||||
|  |       */ | ||||||
|  |      highlight(text) { | ||||||
|  |          if (!this._highlightRegex) | ||||||
|  | -            return text;
 | ||||||
|  | +            return GLib.markup_escape_text(text, -1);
 | ||||||
|  | +
 | ||||||
|  | +        let escaped = [];
 | ||||||
|  | +        let lastMatchEnd = 0;
 | ||||||
|  | +        let match;
 | ||||||
|  | +        while ((match = this._highlightRegex.exec(text))) {
 | ||||||
|  | +            if (match.index > lastMatchEnd) {
 | ||||||
|  | +                let unmatched = GLib.markup_escape_text(
 | ||||||
|  | +                    text.slice(lastMatchEnd, match.index), -1);
 | ||||||
|  | +                escaped.push(unmatched);
 | ||||||
|  | +            }
 | ||||||
|  | +            let matched = GLib.markup_escape_text(match[0], -1);
 | ||||||
|  | +            escaped.push('<b>%s</b>'.format(matched));
 | ||||||
|  | +            lastMatchEnd = match.index + match[0].length;
 | ||||||
|  | +        }
 | ||||||
|  | +        let unmatched = GLib.markup_escape_text(
 | ||||||
|  | +            text.slice(lastMatchEnd), -1);
 | ||||||
|  | +        escaped.push(unmatched);
 | ||||||
|  |   | ||||||
|  | -        return text.replace(this._highlightRegex, '<b>$1</b>');
 | ||||||
|  | +        return escaped.join('');
 | ||||||
|  |      } | ||||||
|  |  }; | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | From 82e2a6dcfabc2f82efbf468175d16c303f0c73da Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Sebastian Keller <skeller@gnome.org> | ||||||
|  | Date: Wed, 17 Nov 2021 03:05:05 +0100 | ||||||
|  | Subject: [PATCH 3/3] tests: Add unit test for highlighter | ||||||
|  | 
 | ||||||
|  | Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2033> | ||||||
|  | ---
 | ||||||
|  |  tests/meson.build         |  12 ++++- | ||||||
|  |  tests/unit/highlighter.js | 106 ++++++++++++++++++++++++++++++++++++++ | ||||||
|  |  2 files changed, 117 insertions(+), 1 deletion(-) | ||||||
|  |  create mode 100644 tests/unit/highlighter.js | ||||||
|  | 
 | ||||||
|  | diff --git a/tests/meson.build b/tests/meson.build
 | ||||||
|  | index c0431631f..50fb601e9 100644
 | ||||||
|  | --- a/tests/meson.build
 | ||||||
|  | +++ b/tests/meson.build
 | ||||||
|  | @@ -10,7 +10,17 @@ run_test = configure_file(
 | ||||||
|  |  testenv = environment() | ||||||
|  |  testenv.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data')) | ||||||
|  |   | ||||||
|  | -foreach test : ['insertSorted', 'jsParse', 'markup', 'params', 'url', 'versionCompare']
 | ||||||
|  | +tests = [
 | ||||||
|  | +    'highlighter',
 | ||||||
|  | +    'insertSorted',
 | ||||||
|  | +    'jsParse',
 | ||||||
|  | +    'markup',
 | ||||||
|  | +    'params',
 | ||||||
|  | +    'url',
 | ||||||
|  | +    'versionCompare',
 | ||||||
|  | +]
 | ||||||
|  | +
 | ||||||
|  | +foreach test : tests
 | ||||||
|  |    test(test, run_test, | ||||||
|  |      args: 'unit/@0@.js'.format(test), | ||||||
|  |      env: testenv, | ||||||
|  | diff --git a/tests/unit/highlighter.js b/tests/unit/highlighter.js
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 000000000..d582d38e3
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/tests/unit/highlighter.js
 | ||||||
|  | @@ -0,0 +1,106 @@
 | ||||||
|  | +// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
 | ||||||
|  | +
 | ||||||
|  | +// Test cases for SearchResult description match highlighter
 | ||||||
|  | +
 | ||||||
|  | +const JsUnit = imports.jsUnit;
 | ||||||
|  | +const Pango = imports.gi.Pango;
 | ||||||
|  | +
 | ||||||
|  | +const Environment = imports.ui.environment;
 | ||||||
|  | +Environment.init();
 | ||||||
|  | +
 | ||||||
|  | +const Util = imports.misc.util;
 | ||||||
|  | +
 | ||||||
|  | +const tests = [
 | ||||||
|  | +    { input: 'abc cba',
 | ||||||
|  | +      terms: null,
 | ||||||
|  | +      output: 'abc cba' },
 | ||||||
|  | +    { input: 'abc cba',
 | ||||||
|  | +      terms: [],
 | ||||||
|  | +      output: 'abc cba' },
 | ||||||
|  | +    { input: 'abc cba',
 | ||||||
|  | +      terms: [''],
 | ||||||
|  | +      output: 'abc cba' },
 | ||||||
|  | +    { input: 'abc cba',
 | ||||||
|  | +      terms: ['a'],
 | ||||||
|  | +      output: '<b>a</b>bc cb<b>a</b>' },
 | ||||||
|  | +    { input: 'abc cba',
 | ||||||
|  | +      terms: ['a', 'a'],
 | ||||||
|  | +      output: '<b>a</b>bc cb<b>a</b>' },
 | ||||||
|  | +    { input: 'CaSe InSenSiTiVe',
 | ||||||
|  | +      terms: ['cas', 'sens'],
 | ||||||
|  | +      output: '<b>CaS</b>e In<b>SenS</b>iTiVe' },
 | ||||||
|  | +    { input: 'This contains the < character',
 | ||||||
|  | +      terms: null,
 | ||||||
|  | +      output: 'This contains the < character' },
 | ||||||
|  | +    { input: 'Don\'t',
 | ||||||
|  | +      terms: ['t'],
 | ||||||
|  | +      output: 'Don'<b>t</b>' },
 | ||||||
|  | +    { input: 'Don\'t',
 | ||||||
|  | +      terms: ['n\'t'],
 | ||||||
|  | +      output: 'Do<b>n't</b>' },
 | ||||||
|  | +    { input: 'Don\'t',
 | ||||||
|  | +      terms: ['o', 't'],
 | ||||||
|  | +      output: 'D<b>o</b>n'<b>t</b>' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['salt'],
 | ||||||
|  | +      output: '<b>salt</b>&pepper' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['salt', 'alt'],
 | ||||||
|  | +      output: '<b>salt</b>&pepper' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['pepper'],
 | ||||||
|  | +      output: 'salt&<b>pepper</b>' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['salt', 'pepper'],
 | ||||||
|  | +      output: '<b>salt</b>&<b>pepper</b>' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['t', 'p'],
 | ||||||
|  | +      output: 'sal<b>t</b>&<b>p</b>e<b>p</b><b>p</b>er' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['t', '&', 'p'],
 | ||||||
|  | +      output: 'sal<b>t</b><b>&</b><b>p</b>e<b>p</b><b>p</b>er' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['e'],
 | ||||||
|  | +      output: 'salt&p<b>e</b>pp<b>e</b>r' },
 | ||||||
|  | +    { input: 'salt&pepper',
 | ||||||
|  | +      terms: ['&a', '&am', '&', '&'],
 | ||||||
|  | +      output: 'salt&pepper' },
 | ||||||
|  | +    { input: '&&&&&',
 | ||||||
|  | +      terms: ['a'],
 | ||||||
|  | +      output: '&&&&&' },
 | ||||||
|  | +    { input: '&;&;&;&;&;',
 | ||||||
|  | +      terms: ['a'],
 | ||||||
|  | +      output: '&;&;&;&;&;' },
 | ||||||
|  | +    { input: '&;&;&;&;&;',
 | ||||||
|  | +      terms: [';'],
 | ||||||
|  | +      output: '&<b>;</b>&<b>;</b>&<b>;</b>&<b>;</b>&<b>;</b>' },
 | ||||||
|  | +    { input: '&',
 | ||||||
|  | +      terms: ['a'],
 | ||||||
|  | +      output: '&<b>a</b>mp;' }
 | ||||||
|  | +];
 | ||||||
|  | +
 | ||||||
|  | +try {
 | ||||||
|  | +    for (let i = 0; i < tests.length; i++) {
 | ||||||
|  | +        let highlighter = new Util.Highlighter(tests[i].terms);
 | ||||||
|  | +        let output = highlighter.highlight(tests[i].input);
 | ||||||
|  | +
 | ||||||
|  | +        JsUnit.assertEquals(`Test ${i + 1} highlight ` +
 | ||||||
|  | +            `"${tests[i].terms}" in "${tests[i].input}"`,
 | ||||||
|  | +            output, tests[i].output);
 | ||||||
|  | +
 | ||||||
|  | +        let parsed = false;
 | ||||||
|  | +        try {
 | ||||||
|  | +            Pango.parse_markup(output, -1, '');
 | ||||||
|  | +            parsed = true;
 | ||||||
|  | +        } catch (e) {}
 | ||||||
|  | +        JsUnit.assertEquals(`Test ${i + 1} is valid markup`, true, parsed);
 | ||||||
|  | +    }
 | ||||||
|  | +} catch (e) {
 | ||||||
|  | +    if (typeof(e.isJsUnitException) != 'undefined'
 | ||||||
|  | +        && e.isJsUnitException)
 | ||||||
|  | +    {
 | ||||||
|  | +        if (e.comment)
 | ||||||
|  | +            log(`Error in: ${e.comment}`);
 | ||||||
|  | +    }
 | ||||||
|  | +    throw e;
 | ||||||
|  | +}
 | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										1353
									
								
								SOURCES/restrict-dbus-callers.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1353
									
								
								SOURCES/restrict-dbus-callers.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,8 +1,8 @@ | |||||||
| %global tarball_version %%(echo %{version} | tr '~' '.') | %global tarball_version %%(echo %{version} | tr '~' '.') | ||||||
| 
 | 
 | ||||||
| Name:           gnome-shell | Name:           gnome-shell | ||||||
| Version:        40.9 | Version:        40.10 | ||||||
| Release:        2%{?dist} | Release:        3%{?dist} | ||||||
| Summary:        Window management and application launching for GNOME | Summary:        Window management and application launching for GNOME | ||||||
| 
 | 
 | ||||||
| License:        GPLv2+ | License:        GPLv2+ | ||||||
| @ -40,6 +40,11 @@ Patch38: add-power-profiles-menu.patch | |||||||
| Patch39: 0001-status-network-Use-wwan-settings-panel-for-GSM-LTE-M.patch | Patch39: 0001-status-network-Use-wwan-settings-panel-for-GSM-LTE-M.patch | ||||||
| Patch40: 0001-welcomeDialog-Adapt-dialog-title.patch | Patch40: 0001-welcomeDialog-Adapt-dialog-title.patch | ||||||
| Patch41: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch | Patch41: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch | ||||||
|  | Patch42: fix-markup-in-highlighter.patch | ||||||
|  | Patch43: restrict-dbus-callers.patch | ||||||
|  | Patch44: 0001-Revert-dash-Subtract-vertical-margins-from-availHeig.patch | ||||||
|  | Patch45: 0001-status-volume-Hide-sliders-initially.patch | ||||||
|  | Patch46: 0001-kbdA11yDialog-Use-MetaKeyboardA11yFlags.patch | ||||||
| 
 | 
 | ||||||
| %define eds_version 3.33.1 | %define eds_version 3.33.1 | ||||||
| %define gnome_desktop_version 3.35.91 | %define gnome_desktop_version 3.35.91 | ||||||
| @ -258,6 +263,32 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de | |||||||
| %{_mandir}/man1/gnome-shell.1* | %{_mandir}/man1/gnome-shell.1* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Jun 20 2022 Florian Müllner <fmuellner@redhat.com> - 40.10-3 | ||||||
|  | - Fix keyboard a11y confirmation dialog | ||||||
|  |   Resolves: #2047644 | ||||||
|  | 
 | ||||||
|  | * Wed May 11 2022 Florian Müllner <fmuellner@redhat.com> - 40.10-2 | ||||||
|  | - Hide volume sliders initially | ||||||
|  |   Related: #2052808 | ||||||
|  | 
 | ||||||
|  | * Tue Apr 19 2022 Florian Müllner <fmuellner@redhat.com> - 40.10-1 | ||||||
|  | - Update to 40.10 | ||||||
|  |   Related: #2066169 | ||||||
|  | 
 | ||||||
|  | * Tue Apr 05 2022 Florian Müllner <fmuellner@redhat.com>- 40.9-5 | ||||||
|  | - Keep new ShimMetaContext type private | ||||||
|  |   Related: #2055366 | ||||||
|  | 
 | ||||||
|  | * Fri Apr 01 2022 Florian Müllner <fmuellner@redhat.com>- 40.9-4 | ||||||
|  | - Restrict D-Bus callers | ||||||
|  |   Resolves: #2055366 | ||||||
|  | 
 | ||||||
|  | * Wed Mar 30 2022 Florian Müllner <fmuellner@redhat.com> - 40.9-3 | ||||||
|  | - Fix markup handling in highlighter | ||||||
|  |   Resolves: #2049194 | ||||||
|  | - Fix warning on restacking | ||||||
|  |   Resolves: #2053638 | ||||||
|  | 
 | ||||||
| * Mon Feb 28 2022 Ray Strode <rstrode@redhat.com> - 40.9-2 | * Mon Feb 28 2022 Ray Strode <rstrode@redhat.com> - 40.9-2 | ||||||
| - Depend on and use background extension | - Depend on and use background extension | ||||||
|   Related: #2057150 |   Related: #2057150 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user