diff --git a/gnome-shell-alt-tab-hdpi-fixes.patch b/gnome-shell-alt-tab-hdpi-fixes.patch new file mode 100644 index 0000000..e88d037 --- /dev/null +++ b/gnome-shell-alt-tab-hdpi-fixes.patch @@ -0,0 +1,49 @@ +From 491e511a9699dad4fce75cf2468067b7ab0b8c64 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 26 Nov 2015 00:04:11 +0100 +Subject: altTab: Fix window-switcher on HiDPI displays + +We need to take the scale factor into account to avoid tiny window +previews on HiDPI. + +https://bugzilla.gnome.org/show_bug.cgi?id=758676 +--- + js/ui/altTab.js | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/js/ui/altTab.js b/js/ui/altTab.js +index 8765f19..7029bf7 100644 +--- a/js/ui/altTab.js ++++ b/js/ui/altTab.js +@@ -685,15 +685,17 @@ const WindowIcon = new Lang.Class({ + + this._icon.destroy_all_children(); + ++ let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; ++ + switch (mode) { + case AppIconMode.THUMBNAIL_ONLY: + size = WINDOW_PREVIEW_SIZE; +- this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE)); ++ this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor)); + break; + + case AppIconMode.BOTH: + size = WINDOW_PREVIEW_SIZE; +- this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE)); ++ this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor)); + + if (this.app) + this._icon.add_actor(this._createAppIcon(this.app, +@@ -705,7 +707,7 @@ const WindowIcon = new Lang.Class({ + this._icon.add_actor(this._createAppIcon(this.app, size)); + } + +- this._icon.set_size(size, size); ++ this._icon.set_size(size * scaleFactor, size * scaleFactor); + }, + + _createAppIcon: function(app, size) { +-- +cgit v0.11.2 + diff --git a/gnome-shell-logindialog-fixes.patch b/gnome-shell-logindialog-fixes.patch new file mode 100644 index 0000000..b7b7fd8 --- /dev/null +++ b/gnome-shell-logindialog-fixes.patch @@ -0,0 +1,100 @@ +From 293bc9839424fd5498ba96e946d17818ad33d18c Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Mon, 23 Nov 2015 17:21:49 -0600 +Subject: loginDialog: Fix TypeError when user is deleted + +LoginDialog has a private _user, but UserListItem has a public user. +Easy to get wrong since _user would be the right thing to type in 90% of +this file. +--- + js/gdm/loginDialog.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js +index b400d79..4150649 100644 +--- a/js/gdm/loginDialog.js ++++ b/js/gdm/loginDialog.js +@@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({ + }, + + _onDestroy: function() { +- this._user.disconnect(this._userChangedId); ++ this.user.disconnect(this._userChangedId); + }, + + _onClicked: function() { +-- +cgit v0.11.2 + +From 3001f3376c9ad92c5b5b2b129b001a5d67caaea6 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Mon, 23 Nov 2015 18:24:19 -0600 +Subject: loginDialog: Reconsider user for user list when user changes + +Generally a user-changed operation will be uninteresting, but if the +user is currently in the user list and the account changes to locked, we +want to remove it from the list, or if the user is not in the list and +the account changed to unlocked, we want to add it to the list. This +fixes the case where a new user account created in gnome-control-center +does not appear in the user list. The password mode is set in the new +account immediately after it is created, but the operations are not +atomic, so the login dialog considers the new user account when it is +still locked and rejects it from being displayed, then immediately +afterwards the account is unlocked. This commit causes the login dialog +to show the account when this occurs. + +The containsUser() check here is not strictly necessary, but reduces +spurious calls to addUser() and removeUser(), since there's no easy way +to check if the locked status of the account has changed (as it's much +easier to connect to one signal on the UserManager than to +notify::locked on each User object). + +https://bugzilla.gnome.org/show_bug.cgi?id=758568 +--- + js/gdm/loginDialog.js | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js +index 4150649..46eeb83 100644 +--- a/js/gdm/loginDialog.js ++++ b/js/gdm/loginDialog.js +@@ -212,6 +212,10 @@ const UserList = new Lang.Class({ + return item; + }, + ++ containsUser: function(user) { ++ return this._items[user.get_user_name()] != null; ++ }, ++ + addUser: function(user) { + if (!user.is_loaded) + return; +@@ -1126,6 +1130,10 @@ const LoginDialog = new Lang.Class({ + this._userManager.disconnect(this._userRemovedId); + this._userRemovedId = 0; + } ++ if (this._userChangedId) { ++ this._userManager.disconnect(this._userChangedId); ++ this._userChangedId = 0; ++ } + this._textureCache.disconnect(this._updateLogoTextureId); + Main.layoutManager.disconnect(this._startupCompleteId); + if (this._settings) { +@@ -1172,6 +1180,14 @@ const LoginDialog = new Lang.Class({ + this._userList.removeUser(user); + })); + ++ this._userChangedId = this._userManager.connect('user-changed', ++ Lang.bind(this, function(userManager, user) { ++ if (this._userList.containsUser(user) && user.locked) ++ this._userList.removeUser(user); ++ else if (!this._userList.containsUser(user) && !user.locked) ++ this._userList.addUser(user); ++ })); ++ + return GLib.SOURCE_REMOVE; + }, + +-- +cgit v0.11.2 + diff --git a/gnome-shell.changes b/gnome-shell.changes index 4f5df36..54e69c9 100644 --- a/gnome-shell.changes +++ b/gnome-shell.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Dec 29 11:31:44 UTC 2015 - zaitor@opensuse.org + +- Replace pkgconfig(libcanberra-gtk) for + pkgconfig(libcanberra-gtk3) BuildRequires: It's what configure + looks for and needed now that libcanberra-devel was split. + +------------------------------------------------------------------- +Sat Dec 12 14:25:50 UTC 2015 - zaitor@opensuse.org + +- Add gnome-shell-logindialog-fixes.patch: Fix misc login dialog + issues. +- Add gnome-shell-alt-tab-hdpi-fixes.patch: Fix tiny preview in + alt-tab when using HiDPI screens. + ------------------------------------------------------------------- Tue Nov 17 22:27:14 UTC 2015 - zaitor@opensuse.org diff --git a/gnome-shell.spec b/gnome-shell.spec index 5c316b4..16d83c4 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -26,6 +26,10 @@ Url: http://live.gnome.org/GnomeShell Source: http://download.gnome.org/sources/gnome-shell/3.18/%{name}-%{version}.tar.xz # PATCH-FIX-UPSTREAM gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- create private connections if the user is not authorized Patch1: gnome-shell-private-connection.patch +# PATCH-FIX-UPSTREAM gnome-shell-logindialog-fixes.patch zaitor@opensuse.org -- 2 commits from upstream fixing misc logindialog issues. +Patch2: gnome-shell-logindialog-fixes.patch +# PATCH-FIX-UPSTREAM gnome-shell-alt-tab-hdpi-fixes.patch zaitor@opensuse.org -- Fix tiny previews in alt-tab when using hidpi screens. +Patch3: gnome-shell-alt-tab-hdpi-fixes.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: gcc-c++ BuildRequires: intltool @@ -51,7 +55,7 @@ BuildRequires: pkgconfig(gstreamer-base-1.0) BuildRequires: pkgconfig(gtk+-3.0) >= 3.15.0 BuildRequires: pkgconfig(json-glib-1.0) >= 0.13.2 BuildRequires: pkgconfig(libcanberra) -BuildRequires: pkgconfig(libcanberra-gtk) +BuildRequires: pkgconfig(libcanberra-gtk3) BuildRequires: pkgconfig(libcroco-0.6) >= 0.6.8 BuildRequires: pkgconfig(libedataserver-1.2) >= 3.5.3 BuildRequires: pkgconfig(libgnome-menu-3.0) >= 3.5.3 @@ -152,6 +156,8 @@ into GNOME Shell calendar. %prep %setup -q %patch1 -p1 +%patch2 -p1 +%patch3 -p1 translation-update-upstream %build