summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2013-08-23 09:27:52 +0000
committerPacho Ramos <pacho@gentoo.org>2013-08-23 09:27:52 +0000
commitb679c3039bd2611acfd598b4d4cb75151ce22084 (patch)
tree4db3a5af16037ff286f1ed0a294f8bddcf774c64 /gnome-base
parentMake emerge messages default to English as per Council decision (diff)
downloadgentoo-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/ChangeLog17
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch94
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch28
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch27
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch22
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch123
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-defaults.patch11
-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
}