diff options
author | Pacho Ramos <pacho@gentoo.org> | 2013-08-23 09:27:52 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2013-08-23 09:27:52 +0000 |
commit | b679c3039bd2611acfd598b4d4cb75151ce22084 (patch) | |
tree | 4db3a5af16037ff286f1ed0a294f8bddcf774c64 /gnome-base | |
parent | Make emerge messages default to English as per Council decision (diff) | |
download | gentoo-2-b679c3039bd2611acfd598b4d4cb75151ce22084.tar.gz gentoo-2-b679c3039bd2611acfd598b4d4cb75151ce22084.tar.bz2 gentoo-2-b679c3039bd2611acfd598b4d4cb75151ce22084.zip |
Multiple fixes from upstream: reversion of a commit causing multiple hangs (#481918), reset opacity when not animating, unconditionally allocate scrollbars, don't allow events through the lock dialog, filter out hidden applications. This also changes default apps in favorites (#479918). Drop old.
(Portage version: 2.1.13.7/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'gnome-base')
-rw-r--r-- | gnome-base/gnome-shell/ChangeLog | 17 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch | 94 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch | 28 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch | 27 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch | 22 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch | 123 | ||||
-rw-r--r-- | gnome-base/gnome-shell/files/gnome-shell-defaults.patch | 11 | ||||
-rw-r--r-- | gnome-base/gnome-shell/gnome-shell-3.8.4-r1.ebuild (renamed from gnome-base/gnome-shell/gnome-shell-3.8.3-r2.ebuild) | 25 |
8 files changed, 340 insertions, 7 deletions
diff --git a/gnome-base/gnome-shell/ChangeLog b/gnome-base/gnome-shell/ChangeLog index 0e2e91083281..e0d29edc03f8 100644 --- a/gnome-base/gnome-shell/ChangeLog +++ b/gnome-base/gnome-shell/ChangeLog @@ -1,6 +1,21 @@ # ChangeLog for gnome-base/gnome-shell # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/ChangeLog,v 1.44 2013/07/31 03:35:45 tetromino Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/ChangeLog,v 1.45 2013/08/23 09:27:51 pacho Exp $ + +*gnome-shell-3.8.4-r1 (23 Aug 2013) + + 23 Aug 2013; Pacho Ramos <pacho@gentoo.org> + +files/gnome-shell-3.8.4-allocate-scrollbars.patch, + +files/gnome-shell-3.8.4-events-lock.patch, + +files/gnome-shell-3.8.4-nodisplay.patch, + +files/gnome-shell-3.8.4-reset-opacity.patch, + +files/gnome-shell-3.8.4-revert-async.patch, + +files/gnome-shell-defaults.patch, +gnome-shell-3.8.4-r1.ebuild, + -gnome-shell-3.8.3-r2.ebuild: + Multiple fixes from upstream: reversion of a commit causing multiple hangs + (#481918), reset opacity when not animating, unconditionally allocate + scrollbars, don't allow events through the lock dialog, filter out hidden + applications. This also changes default apps in favorites (#479918). Drop old. *gnome-shell-3.8.4 (31 Jul 2013) diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch new file mode 100644 index 000000000000..861e7300ef1e --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch @@ -0,0 +1,94 @@ +From 52417a8363cdb5b57af744cd4ca311c7f068403e Mon Sep 17 00:00:00 2001 +From: Adel Gadllah <adel.gadllah@gmail.com> +Date: Sat, 10 Aug 2013 20:09:33 +0000 +Subject: st-scroll-view: Unconditionally allocate scrollbars + +Commit cfecd063c9ca3d18cd changed the allocation logic to not allocate +scrollbars when the *_visible booleans are false. This breaks the +fade effect as well as the NEVER policy. We do not paint scrollbars +when they are not supposed to be visible, so not allocating them +and thus leaving them in a "needs allocation" state just causes problems. + +I am not convinced that it solved any problem to begin with (we don't paint +them anyway). + +As the previous condition has basically always been true, just do it +unconditionally. + +https://bugzilla.gnome.org/show_bug.cgi?id=705664 +--- +diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c +index 04e263f..f59ae93 100644 +--- a/src/st/st-scroll-view.c ++++ b/src/st/st-scroll-view.c +@@ -598,42 +598,36 @@ st_scroll_view_allocate (ClutterActor *actor, + */ + + /* Vertical scrollbar */ +- if (vscrollbar_visible) +- { +- if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL) +- { +- child_box.x1 = content_box.x1; +- child_box.x2 = content_box.x1 + sb_width; +- } +- else +- { +- child_box.x1 = content_box.x2 - sb_width; +- child_box.x2 = content_box.x2; +- } +- child_box.y1 = content_box.y1; +- child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0); ++ if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL) ++ { ++ child_box.x1 = content_box.x1; ++ child_box.x2 = content_box.x1 + sb_width; ++ } ++ else ++ { ++ child_box.x1 = content_box.x2 - sb_width; ++ child_box.x2 = content_box.x2; ++ } ++ child_box.y1 = content_box.y1; ++ child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0); + +- clutter_actor_allocate (priv->vscroll, &child_box, flags); +- } ++ clutter_actor_allocate (priv->vscroll, &child_box, flags); + + /* Horizontal scrollbar */ +- if (hscrollbar_visible) +- { +- if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL) +- { +- child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0); +- child_box.x2 = content_box.x2; +- } +- else +- { +- child_box.x1 = content_box.x1; +- child_box.x2 = content_box.x2 - (vscrollbar_visible ? sb_width : 0); +- } +- child_box.y1 = content_box.y2 - sb_height; +- child_box.y2 = content_box.y2; ++ if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL) ++ { ++ child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0); ++ child_box.x2 = content_box.x2; ++ } ++ else ++ { ++ child_box.x1 = content_box.x1; ++ child_box.x2 = content_box.x2 - (vscrollbar_visible ? sb_width : 0); ++ } ++ child_box.y1 = content_box.y2 - sb_height; ++ child_box.y2 = content_box.y2; + +- clutter_actor_allocate (priv->hscroll, &child_box, flags); +- } ++ clutter_actor_allocate (priv->hscroll, &child_box, flags); + + /* In case the scrollbar policy is NEVER or scrollbars should be + * overlayed, we don't trim the content box allocation by the +-- +cgit v0.9.2 diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch new file mode 100644 index 000000000000..0e0fc5bbcaf8 --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch @@ -0,0 +1,28 @@ +From d8177a8f3ba6cc6e80d27a7c6bdd1b5920e12544 Mon Sep 17 00:00:00 2001 +From: Giovanni Campagna <gcampagna@src.gnome.org> +Date: Mon, 12 Aug 2013 13:14:37 +0000 +Subject: ScreenShield: don't allow events through the lock dialog + +Make the lock dialog group reactive, to intercept any events +before they go to the actors below. +In the future, we may restructure our chrome to have a clear +layer system, but for now it fixes a security issue in the lock +screen (you can see the contents of the windows by dragging +if the screen was locked with the overview active) + +https://bugzilla.gnome.org/show_bug.cgi?id=705840 +--- +diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js +index 4264f01..8452bc6 100644 +--- a/js/ui/screenShield.js ++++ b/js/ui/screenShield.js +@@ -478,6 +478,7 @@ const ScreenShield = new Lang.Class({ + + this._lockDialogGroup = new St.Widget({ x_expand: true, + y_expand: true, ++ reactive: true, + opacity: 0, + pivot_point: new Clutter.Point({ x: 0.5, y: 0.5 }), + name: 'lockDialogGroup' }); +-- +cgit v0.9.2 diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch new file mode 100644 index 000000000000..2c9b802fe736 --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch @@ -0,0 +1,27 @@ +From 58872d162bd610578e048bf2832defc93a284a75 Mon Sep 17 00:00:00 2001 +From: Giovanni Campagna <gcampagna@src.gnome.org> +Date: Sun, 31 Mar 2013 18:05:49 +0000 +Subject: AppDisplay/FrequentView: filter out hidden applications + +Filter out all applications which have the NoDisplay, Hidden or +Not/OnlyShowIn bits, as those are not meant to be launched directly. +This also allows the user to filter apps from the frequent view +using alacarte. + +https://bugzilla.gnome.org/show_bug.cgi?id=696949 +--- +diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js +index 22ae481..bcfb57a 100644 +--- a/js/ui/appDisplay.js ++++ b/js/ui/appDisplay.js +@@ -316,6 +316,8 @@ const FrequentView = new Lang.Class({ + loadApps: function() { + let mostUsed = this._usage.get_most_used (""); + for (let i = 0; i < mostUsed.length; i++) { ++ if (!mostUsed[i].get_app_info().should_show()) ++ continue; + let appIcon = new AppIcon(mostUsed[i]); + this._grid.addItem(appIcon.actor, -1); + } +-- +cgit v0.9.2 diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch new file mode 100644 index 000000000000..7a01178a9e5e --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch @@ -0,0 +1,22 @@ +From a6f39a12d7fef85c8ce40bc3898b17adf31bc2ba Mon Sep 17 00:00:00 2001 +From: Adel Gadllah <adel.gadllah@gmail.com> +Date: Sun, 04 Aug 2013 09:35:35 +0000 +Subject: overview: Reset opacity when not animating + +We are not resetting the opacity when we are not animating, which can cause +a hidden window to end up with opacity 0 if we remove the tween to early. +--- +diff --git a/js/ui/workspace.js b/js/ui/workspace.js +index e2e461d..2c8ff22 100644 +--- a/js/ui/workspace.js ++++ b/js/ui/workspace.js +@@ -1094,6 +1094,7 @@ const Workspace = new Lang.Class({ + Tweener.removeTweens(clone.actor); + clone.actor.set_position(x, y); + clone.actor.set_scale(scale, scale); ++ clone.actor.set_opacity(255); + clone.overlay.relayout(false); + this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace); + } +-- +cgit v0.9.2 diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch new file mode 100644 index 000000000000..bd34b16f121d --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch @@ -0,0 +1,123 @@ +From 0a1b9867fcf5065a72e782e05fea858883bf2cdc Mon Sep 17 00:00:00 2001 +From: Adel Gadllah <adel.gadllah@gmail.com> +Date: Thu, 15 Aug 2013 19:51:46 +0000 +Subject: Revert "background: fix asynchronous management of background loading operations" + +This reverts commit 1020d8a0f8523a04d8336b1348388b8b242e414f. + +https://bugzilla.gnome.org/show_bug.cgi?id=704646 +--- +diff --git a/js/ui/background.js b/js/ui/background.js +index 13343c6..1d9ab7c 100644 +--- a/js/ui/background.js ++++ b/js/ui/background.js +@@ -142,40 +142,33 @@ const BackgroundCache = new Lang.Class({ + cancellable: null, + onFinished: null }); + +- let fileLoad = { filename: params.filename, +- style: params.style, +- shouldCopy: false, +- monitorIndex: params.monitorIndex, +- effects: params.effects, +- onFinished: params.onFinished, +- cancellable: new Gio.Cancellable(), }; +- this._pendingFileLoads.push(fileLoad); +- +- if (params.cancellable) { +- params.cancellable.connect(Lang.bind(this, function(c) { +- fileLoad.cancellable.cancel(); +- })); ++ for (let i = 0; i < this._pendingFileLoads.length; i++) { ++ if (this._pendingFileLoads[i].filename == params.filename && ++ this._pendingFileLoads[i].style == params.style) { ++ this._pendingFileLoads[i].callers.push({ shouldCopy: true, ++ monitorIndex: params.monitorIndex, ++ effects: params.effects, ++ onFinished: params.onFinished }); ++ return; ++ } + } + ++ this._pendingFileLoads.push({ filename: params.filename, ++ style: params.style, ++ callers: [{ shouldCopy: false, ++ monitorIndex: params.monitorIndex, ++ effects: params.effects, ++ onFinished: params.onFinished }] }); ++ + let content = new Meta.Background({ meta_screen: global.screen, + monitor: params.monitorIndex, + effects: params.effects }); + + content.load_file_async(params.filename, + params.style, +- fileLoad.cancellable, ++ params.cancellable, + Lang.bind(this, + function(object, result) { +- if (fileLoad.cancellable.is_cancelled()) { +- if (params.cancellable && params.cancellable.is_cancelled()) { +- if (params.onFinished) +- params.onFinished(null); +- this._removePendingFileLoad(fileLoad); +- return; +- } +- return; +- } +- + try { + content.load_file_finish(result); + +@@ -185,25 +178,22 @@ const BackgroundCache = new Lang.Class({ + content = null; + } + +- let needsCopy = false; + for (let i = 0; i < this._pendingFileLoads.length; i++) { + let pendingLoad = this._pendingFileLoads[i]; + if (pendingLoad.filename != params.filename || + pendingLoad.style != params.style) + continue; + +- if (pendingLoad.cancellable.is_cancelled()) +- continue; ++ for (let j = 0; j < pendingLoad.callers.length; j++) { ++ if (pendingLoad.callers[j].onFinished) { ++ if (content && pendingLoad.callers[j].shouldCopy) { ++ content = object.copy(pendingLoad.callers[j].monitorIndex, ++ pendingLoad.callers[j].effects); + +- pendingLoad.cancellable.cancel(); +- if (pendingLoad.onFinished) { +- if (content && needsCopy) { +- content = object.copy(pendingLoad.monitorIndex, +- pendingLoad.effects); +- } ++ } + +- needsCopy = true; +- pendingLoad.onFinished(content); ++ pendingLoad.callers[j].onFinished(content); ++ } + } + + this._pendingFileLoads.splice(i, 1); +@@ -211,15 +201,6 @@ const BackgroundCache = new Lang.Class({ + })); + }, + +- _removePendingFileLoad: function(fileLoad) { +- for (let i = 0; i < this._pendingFileLoads.length; i++) { +- if (this._pendingFileLoads[i].cancellable == fileLoad.cancellable) { +- this._pendingFileLoads.splice(i, 1); +- break; +- } +- } +- }, +- + getImageContent: function(params) { + params = Params.parse(params, { monitorIndex: 0, + style: null, +-- +cgit v0.9.2 diff --git a/gnome-base/gnome-shell/files/gnome-shell-defaults.patch b/gnome-base/gnome-shell/files/gnome-shell-defaults.patch new file mode 100644 index 000000000000..b88ca809599a --- /dev/null +++ b/gnome-base/gnome-shell/files/gnome-shell-defaults.patch @@ -0,0 +1,11 @@ +--- data/org.gnome.shell.gschema.xml.in.in~ 2013-07-30 22:57:44.000000000 +0200 ++++ data/org.gnome.shell.gschema.xml.in.in 2013-08-23 11:19:00.002182266 +0200 +@@ -32,7 +32,7 @@ + </_description> + </key> + <key name="favorite-apps" type="as"> +- <default>[ 'epiphany.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default> ++ <default>[ 'chromium-browser-chromium.desktop', 'firefox.desktop', 'firefox-bin.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default> + <_summary>List of desktop file IDs for favorite applications</_summary> + <_description> + The applications corresponding to these identifiers diff --git a/gnome-base/gnome-shell/gnome-shell-3.8.3-r2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.8.4-r1.ebuild index 481a44e64242..4899929b4772 100644 --- a/gnome-base/gnome-shell/gnome-shell-3.8.3-r2.ebuild +++ b/gnome-base/gnome-shell/gnome-shell-3.8.4-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.8.3-r2.ebuild,v 1.5 2013/07/29 20:24:45 pacho Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.8.4-r1.ebuild,v 1.1 2013/08/23 09:27:51 pacho Exp $ EAPI="5" GCONF_DEBUG="no" @@ -12,8 +12,6 @@ inherit autotools eutils gnome2 multilib pax-utils python-r1 systemd DESCRIPTION="Provides core UI functions for the GNOME 3 desktop" HOMEPAGE="http://live.gnome.org/GnomeShell" -SRC_URI="${SRC_URI} http://dev.gentoo.org/~pacho/gnome/${P}-patches.tar.xz" - LICENSE="GPL-2+ LGPL-2+" SLOT="0" IUSE="+bluetooth +i18n +networkmanager" @@ -123,6 +121,9 @@ DEPEND="${COMMON_DEPEND} REQUIRED_USE="${PYTHON_REQUIRED_USE}" src_prepare() { + # Change favorites defaults, bug #479918 + epatch "${FILESDIR}/${PN}-defaults.patch" + # Fix automagic gnome-bluetooth dep, bug #398145 epatch "${FILESDIR}/${PN}-3.7.90-bluetooth-flag.patch" @@ -132,8 +133,20 @@ src_prepare() { # Re-lock the screen if we're restarted from a previously crashed shell (from 'master') epatch "${FILESDIR}/${PN}-3.8.3-relock-screen.patch" - # Apply patches from gnome-3.8 branch - epatch "${WORKDIR}/${P}-patches/"*.patch + # Reset opacity when not animating (from 3.8 branch) + epatch "${FILESDIR}/${P}-reset-opacity.patch" + + # Unconditionally allocate scrollbars (from 3.8 branch) + epatch "${FILESDIR}/${P}-allocate-scrollbars.patch" + + # ScreenShield: don't allow events through the lock dialog (from 3.8 branch) + epatch "${FILESDIR}/${P}-events-lock.patch" + + # Revert "background: fix asynchronous management of background loading operations" (#481918) + epatch "${FILESDIR}/${P}-revert-async.patch" + + # AppDisplay/FrequentView: filter out hidden applications (from 'master') + epatch "${FILESDIR}/${PN}-3.8.4-nodisplay.patch" epatch_user @@ -217,7 +230,7 @@ pkg_postinst() { if ! systemd_is_booted; then ewarn "${PN} needs Systemd to be *running* for working" - ewarn "properly. Please follow the this guide to migrate:" + ewarn "properly. Please follow this guide to migrate:" ewarn "http://wiki.gentoo.org/wiki/Systemd" fi } |