#1 Backport keyboard layout change fixes
Merged 3 years ago by kalev. Opened 3 years ago by jadahl.
rpms/ jadahl/gnome-shell f29-keyboard-layout-switch  into  f29

Backport keyboard layout change fixes
Jonas Ådahl • 3 years ago  
@@ -0,0 +1,68 @@ 

+ From ccc59673827f9e36b7374fcf03de94d1b1513550 Mon Sep 17 00:00:00 2001

+ From: Carlos Garnacho <carlosg@gnome.org>

+ Date: Mon, 22 Oct 2018 22:06:36 +0000

+ Subject: [PATCH] keyboardManager: Avoid idempotent calls to

+  meta_backend_set_keymap()

+ 

+ But still try to apply the keymap whenever the input sources changed. This

+ is a different approach to gnome-shell#240 that still avoid redundant

+ changes to the current keymap, but actually trigger one when input sources

+ are added.

+ 

+ https://bugzilla.redhat.com/show_bug.cgi?id=1637418

+ 

+ Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/691

+ 

+ 

+ (cherry picked from commit b405ed64427a9d518d1714df678d04ad11267e15)

+ ---

+  js/misc/keyboardManager.js | 14 +++++++++-----

+  1 file changed, 9 insertions(+), 5 deletions(-)

+ 

+ diff --git a/js/misc/keyboardManager.js b/js/misc/keyboardManager.js

+ index ae59f0014..f4001f130 100644

+ --- a/js/misc/keyboardManager.js

+ +++ b/js/misc/keyboardManager.js

+ @@ -52,11 +52,20 @@ var KeyboardManager = new Lang.Class({

+          this._current = null;

+          this._localeLayoutInfo = this._getLocaleLayout();

+          this._layoutInfos = {};

+ +        this._currentKeymap = null;

+      },

+  

+      _applyLayoutGroup(group) {

+          let options = this._buildOptionsString();

+          let [layouts, variants] = this._buildGroupStrings(group);

+ +

+ +        if (this._currentKeymap &&

+ +            this._currentKeymap.layouts == layouts &&

+ +            this._currentKeymap.variants == variants &&

+ +            this._currentKeymap.options == options)

+ +            return;

+ +

+ +        this._currentKeymap = {layouts, variants, options};

+          Meta.get_backend().set_keymap(layouts, variants, options);

+      },

+  

+ @@ -89,8 +98,6 @@ var KeyboardManager = new Lang.Class({

+      },

+  

+      setUserLayouts(ids) {

+ -        let currentId = this._current ? this._current.id : null;

+ -        let currentGroupIndex = this._current ? this._current.groupIndex : null;

+          this._current = null;

+          this._layoutInfos = {};

+  

+ @@ -117,9 +124,6 @@ var KeyboardManager = new Lang.Class({

+              info.group = group;

+              info.groupIndex = groupIndex;

+  

+ -            if (currentId == id && currentGroupIndex == groupIndex)

+ -                this._current = info;

+ -

+              i += 1;

+          }

+      },

+ -- 

+ 2.19.1

+ 

file modified
+7 -1
@@ -1,6 +1,6 @@ 

  Name:           gnome-shell

  Version:        3.30.1

- Release:        1%{?dist}

+ Release:        2%{?dist}

  Summary:        Window management and application launching for GNOME

  

  Group:          User Interface/Desktops
@@ -18,6 +18,9 @@ 

  Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch

  Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch

  

+ # Backport keyboard layout change fixes (rhbz#1637418)

+ Patch4: 0001-keyboardManager-Avoid-idempotent-calls-to-meta_backe.patch

+ 

  %define libcroco_version 0.6.8

  %define eds_version 3.17.2

  %define gnome_desktop_version 3.7.90
@@ -214,6 +217,9 @@ 

  %{_mandir}/man1/%{name}.1.gz

  

  %changelog

+ * Tue Oct 23 2018 Jonas Ådahl <jadahl@redhat.com> - 3.30.1-2

+ - Backport keyboard layout change fixes (rhbz#1637418)

+ 

  * Mon Oct 08 2018 Florian Müllner <fmuellner@redhat.com> - 3.30.1-1

  - Update to 3.30.1