r36518 - in /desktop/experimental/gnome-shell/debian: ./ patches/
sjoerd at users.alioth.debian.org
sjoerd at users.alioth.debian.org
Fri Jan 4 21:13:27 UTC 2013
Author: sjoerd
Date: Fri Jan 4 21:13:26 2013
New Revision: 36518
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=36518
Log:
* debian/control.in: Build-depend on recent telepathy-logger which contains
various fixes for gnome-shell usage
* d/p/40-shell-recorder-src-Set-frame-duration.patch:
+ Added. Correctly set the duration on the frames to create a correct webm
file (from upstream git, bgo#688487))
* d/p/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch:
+ Added. Pressing esc while the mouse is down should not make the curtain
fall, otherwise a gray screen results. (From upstream git, bgo#686800)
* d/p/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch
d/p/61-MessageTray-restore-opacity-when-expanding-a-notific.patch
d/p/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch:
+ Added. Various patches to fix the curious case of the disappearing
message tray (From upstream git, bgo#683986)
Added:
desktop/experimental/gnome-shell/debian/patches/40-shell-recorder-src-Set-frame-duration.patch
desktop/experimental/gnome-shell/debian/patches/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch
desktop/experimental/gnome-shell/debian/patches/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch
desktop/experimental/gnome-shell/debian/patches/61-MessageTray-restore-opacity-when-expanding-a-notific.patch
desktop/experimental/gnome-shell/debian/patches/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch
Modified:
desktop/experimental/gnome-shell/debian/changelog
desktop/experimental/gnome-shell/debian/control
desktop/experimental/gnome-shell/debian/control.in
desktop/experimental/gnome-shell/debian/patches/series
Modified: desktop/experimental/gnome-shell/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/changelog?rev=36518&op=diff
==============================================================================
--- desktop/experimental/gnome-shell/debian/changelog [utf-8] (original)
+++ desktop/experimental/gnome-shell/debian/changelog [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,4 +1,4 @@
-gnome-shell (3.6.2-2) UNRELEASED; urgency=low
+gnome-shell (3.6.2-2) experimental; urgency=low
[ Josselin Mouette ]
* Recommend gkbd-capplet for gkbd-keyboard-display. Closes: #691731.
@@ -6,7 +6,22 @@
[ Jeremy Bicha ]
* debian/control.in: Bump minimum mutter & eds depends
- -- Josselin Mouette <joss at debian.org> Sat, 24 Nov 2012 13:31:12 +0100
+ [ Sjoerd Simons ]
+ * debian/control.in: Build-depend on recent telepathy-logger which contains
+ various fixes for gnome-shell usage
+ * d/p/40-shell-recorder-src-Set-frame-duration.patch:
+ + Added. Correctly set the duration on the frames to create a correct webm
+ file (from upstream git, bgo#688487))
+ * d/p/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch:
+ + Added. Pressing esc while the mouse is down should not make the curtain
+ fall, otherwise a gray screen results. (From upstream git, bgo#686800)
+ * d/p/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch
+ d/p/61-MessageTray-restore-opacity-when-expanding-a-notific.patch
+ d/p/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch:
+ + Added. Various patches to fix the curious case of the disappearing
+ message tray (From upstream git, bgo#683986)
+
+ -- Sjoerd Simons <sjoerd at debian.org> Fri, 04 Jan 2013 22:12:45 +0100
gnome-shell (3.6.2-1) experimental; urgency=low
Modified: desktop/experimental/gnome-shell/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/control?rev=36518&op=diff
==============================================================================
--- desktop/experimental/gnome-shell/debian/control [utf-8] (original)
+++ desktop/experimental/gnome-shell/debian/control [utf-8] Fri Jan 4 21:13:26 2013
@@ -2,6 +2,7 @@
#
# Modifications should be made to debian/control.in instead.
# This file is regenerated automatically in the clean target.
+
Source: gnome-shell
Section: gnome
Priority: optional
@@ -44,7 +45,7 @@
libpulse-dev,
libstartup-notification0-dev (>= 0.11),
libtelepathy-glib-dev (>= 0.17.5),
- libtelepathy-logger-dev (>= 0.2.4),
+ libtelepathy-logger-dev (>= 0.6.0-2),
libx11-dev,
libxfixes-dev,
libxml2-dev,
Modified: desktop/experimental/gnome-shell/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/control.in?rev=36518&op=diff
==============================================================================
--- desktop/experimental/gnome-shell/debian/control.in [utf-8] (original)
+++ desktop/experimental/gnome-shell/debian/control.in [utf-8] Fri Jan 4 21:13:26 2013
@@ -40,7 +40,7 @@
libpulse-dev,
libstartup-notification0-dev (>= 0.11),
libtelepathy-glib-dev (>= 0.17.5),
- libtelepathy-logger-dev (>= 0.2.4),
+ libtelepathy-logger-dev (>= 0.6.0-2),
libx11-dev,
libxfixes-dev,
libxml2-dev,
Added: desktop/experimental/gnome-shell/debian/patches/40-shell-recorder-src-Set-frame-duration.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/40-shell-recorder-src-Set-frame-duration.patch?rev=36518&op=file
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/40-shell-recorder-src-Set-frame-duration.patch (added)
+++ desktop/experimental/gnome-shell/debian/patches/40-shell-recorder-src-Set-frame-duration.patch [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,0 +1,73 @@
+From a2b8b969bd15c73e7f6f398138dbf7a8375f5aef Mon Sep 17 00:00:00 2001
+From: Adel Gadllah <adel.gadllah at gmail.com>
+Date: Mon, 19 Nov 2012 18:50:39 +0100
+Subject: [PATCH] shell-recorder-src: Set frame duration
+
+We where not setting a duration for the frames, which caused the resulting videos to
+have a broken header.
+
+Fix that by making the source a live source and setting the correct frame duration.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=688487
+---
+ src/shell-recorder-src.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/src/shell-recorder-src.c b/src/shell-recorder-src.c
+index 5b52b25..5e325cf 100644
+--- a/src/shell-recorder-src.c
++++ b/src/shell-recorder-src.c
+@@ -14,6 +14,9 @@ struct _ShellRecorderSrc
+ GMutex mutex_data;
+ GMutex *mutex;
+
++ GstClock *clock;
++ GstClockTime last_frame_time;
++
+ GstCaps *caps;
+ GAsyncQueue *queue;
+ gboolean closed;
+@@ -41,6 +44,10 @@ static void
+ shell_recorder_src_init (ShellRecorderSrc *src)
+ {
+ gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
++ gst_base_src_set_live (GST_BASE_SRC (src), TRUE);
++
++ src->clock = gst_system_clock_obtain ();
++ src->last_frame_time = 0;
+
+ src->queue = g_async_queue_new ();
+ src->mutex = &src->mutex_data;
+@@ -89,6 +96,10 @@ shell_recorder_src_create (GstPushSrc *push_src,
+ return GST_FLOW_EOS;
+
+ buffer = g_async_queue_pop (src->queue);
++
++ if (src->last_frame_time == 0)
++ src->last_frame_time = gst_clock_get_time (GST_CLOCK (src->clock));
++
+ if (buffer == RECORDER_QUEUE_END)
+ {
+ /* Returning UNEXPECTED here will cause a EOS message to be sent */
+@@ -100,6 +111,9 @@ shell_recorder_src_create (GstPushSrc *push_src,
+ - (int)(gst_buffer_get_size(buffer) / 1024));
+
+ *buffer_out = buffer;
++ GST_BUFFER_DURATION(*buffer_out) = GST_CLOCK_DIFF (src->last_frame_time, gst_clock_get_time (GST_CLOCK (src->clock)));
++
++ src->last_frame_time = gst_clock_get_time (GST_CLOCK (src->clock));
+
+ return GST_FLOW_OK;
+ }
+@@ -141,6 +155,8 @@ shell_recorder_src_finalize (GObject *object)
+
+ g_mutex_clear (src->mutex);
+
++ gst_object_unref (src->clock);
++
+ G_OBJECT_CLASS (shell_recorder_src_parent_class)->finalize (object);
+ }
+
+--
+1.7.10.4
+
Added: desktop/experimental/gnome-shell/debian/patches/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch?rev=36518&op=file
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch (added)
+++ desktop/experimental/gnome-shell/debian/patches/50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,0 +1,111 @@
+From 4007f5d36e614d18bc388cb9915083d5d2e87ded Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna at src.gnome.org>
+Date: Wed, 24 Oct 2012 17:53:19 +0200
+Subject: [PATCH] Block cancellation of the unlock dialog when dragging
+
+Pressing esc while the mouse is down should not make the curtain fall,
+otherwise a gray screen results.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=686800
+
+Conflicts:
+ js/ui/screenShield.js
+ js/ui/unlockDialog.js
+---
+ js/ui/screenShield.js | 13 ++++++++-----
+ js/ui/unlockDialog.js | 7 +++++--
+ 2 files changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
+index 5b93444..988e191 100644
+--- a/js/ui/screenShield.js
++++ b/js/ui/screenShield.js
+@@ -458,7 +458,7 @@ const ScreenShield = new Lang.Class({
+ if (symbol == Clutter.KEY_Escape ||
+ symbol == Clutter.KEY_Return ||
+ symbol == Clutter.KEY_KP_Enter) {
+- this._ensureUnlockDialog(true);
++ this._ensureUnlockDialog(true, true);
+ this._hideLockScreen(true);
+ return true;
+ }
+@@ -481,7 +481,7 @@ const ScreenShield = new Lang.Class({
+
+ // 7 standard scrolls to lift up
+ if (this._lockScreenScrollCounter > 35) {
+- this._ensureUnlockDialog(false);
++ this._ensureUnlockDialog(false, true);
+ this._hideLockScreen(true);
+ }
+
+@@ -513,13 +513,14 @@ const ScreenShield = new Lang.Class({
+ _onDragBegin: function() {
+ Tweener.removeTweens(this._lockScreenGroup);
+ this._lockScreenState = MessageTray.State.HIDING;
+- this._ensureUnlockDialog(false);
++ this._ensureUnlockDialog(false, false);
+ },
+
+ _onDragEnd: function(action, actor, eventX, eventY, modifiers) {
+ if (this._lockScreenGroup.y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
+ // Complete motion automatically
+ this._hideLockScreen(true);
++ this._ensureUnlockDialog(false, true);
+ } else {
+ // restore the lock screen to its original place
+ // try to use the same speed as the normal animation
+@@ -608,7 +609,7 @@ const ScreenShield = new Lang.Class({
+
+ this.actor.show();
+ this._isGreeter = Main.sessionMode.isGreeter;
+- this._ensureUnlockDialog(true);
++ this._ensureUnlockDialog(true, true);
+ this._hideLockScreen(false);
+ },
+
+@@ -655,7 +656,7 @@ const ScreenShield = new Lang.Class({
+ Main.sessionMode.popMode('lock-screen');
+ },
+
+- _ensureUnlockDialog: function(onPrimary) {
++ _ensureUnlockDialog: function(onPrimary, allowCancel) {
+ if (!this._dialog) {
+ let constructor = Main.sessionMode.unlockDialog;
+ if (!constructor) {
+@@ -678,6 +679,8 @@ const ScreenShield = new Lang.Class({
+ this._dialog.connect('failed', Lang.bind(this, this._onUnlockFailed));
+ this._dialog.connect('unlocked', Lang.bind(this, this._onUnlockSucceded));
+ }
++
++ this._dialog.allowCancel = allowCancel;
+ },
+
+ _onUnlockFailed: function() {
+diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
+index 52ef50c..90fa9f3 100644
+--- a/js/ui/unlockDialog.js
++++ b/js/ui/unlockDialog.js
+@@ -164,6 +164,7 @@ const UnlockDialog = new Lang.Class({
+ this._promptLoginHint.hide();
+ this.contentLayout.add_actor(this._promptLoginHint);
+
++ this.allowCancel = false;
+ let cancelButton = { label: _("Cancel"),
+ action: Lang.bind(this, this._escape),
+ key: Clutter.KEY_Escape };
+@@ -291,8 +292,10 @@ const UnlockDialog = new Lang.Class({
+ },
+
+ _escape: function() {
+- this._userVerifier.cancel();
+- this.emit('failed');
++ if (this.allowCancel) {
++ this._userVerifier.cancel();
++ this.emit('failed');
++ }
+ },
+
+ _otherUserClicked: function(button, event) {
+--
+1.7.10.4
+
Added: desktop/experimental/gnome-shell/debian/patches/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch?rev=36518&op=file
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch (added)
+++ desktop/experimental/gnome-shell/debian/patches/60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,0 +1,40 @@
+From caacf857fb22278016c21373a5936a236585e731 Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna at src.gnome.org>
+Date: Tue, 11 Sep 2012 00:44:28 +0200
+Subject: [PATCH 1/3] MessageTray: fix reentrancy when calling out to the grab
+ helper
+
+Similar to 683546. I'm not sure where this bug lives, but let's make
+the code robust.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=683986
+---
+ js/ui/messageTray.js | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
+index c213e92..71ebb29 100644
+--- a/js/ui/messageTray.js
++++ b/js/ui/messageTray.js
+@@ -2277,6 +2277,18 @@ const MessageTray = new Lang.Class({
+ },
+
+ _hideNotification: function() {
++ // HACK!
++ // There seems to be a reentrancy issue in calling .ungrab() here,
++ // which causes _updateState to be called before _notificationState
++ // becomes HIDING. That hides the notification again, nullifying the
++ // object but not setting _notificationState (and that's the weird part)
++ // As then _notificationState is stuck into SHOWN but _notification
++ // is null, every new _updateState fails and the message tray is
++ // lost forever.
++ //
++ // See more at https://bugzilla.gnome.org/show_bug.cgi?id=683986
++ this._notificationState = State.HIDING;
++
+ this._grabHelper.ungrab({ actor: this._notification.actor });
+
+ if (this._notificationExpandedId) {
+--
+1.7.10.4
+
Added: desktop/experimental/gnome-shell/debian/patches/61-MessageTray-restore-opacity-when-expanding-a-notific.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/61-MessageTray-restore-opacity-when-expanding-a-notific.patch?rev=36518&op=file
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/61-MessageTray-restore-opacity-when-expanding-a-notific.patch (added)
+++ desktop/experimental/gnome-shell/debian/patches/61-MessageTray-restore-opacity-when-expanding-a-notific.patch [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,0 +1,39 @@
+From e8fbaf028c47762d68be981b7ad20a5e81e5ae14 Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna at src.gnome.org>
+Date: Mon, 19 Nov 2012 18:59:39 +0100
+Subject: [PATCH 2/3] MessageTray: restore opacity when expanding a
+ notification
+
+MessageTray tweens both opacity and y to hide or show _notificationWidget,
+but only y when expanding it. This means that an existing tween to hide
+the notification will continue running, clearing the notification state.
+If the hiding one completes before the showing one, the onComplete handler
+will throw an exception (because the notification was nullified) and
+therefore break the state tracking.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=683986
+---
+ js/ui/messageTray.js | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
+index 71ebb29..7079c19 100644
+--- a/js/ui/messageTray.js
++++ b/js/ui/messageTray.js
+@@ -2353,8 +2353,13 @@ const MessageTray = new Lang.Class({
+ if (this._notificationWidget.y < expandedY) {
+ this._notificationWidget.y = expandedY;
+ } else if (this._notification.y != expandedY) {
++ // Tween also opacity here, to override a possible tween that's
++ // currently hiding the notification. This will ensure that the
++ // notification is not removed when the onComplete handler for this
++ // one triggers.
+ this._tween(this._notificationWidget, '_notificationState', State.SHOWN,
+ { y: expandedY,
++ opacity: 255,
+ time: ANIMATION_TIME,
+ transition: 'easeOutQuad'
+ });
+--
+1.7.10.4
+
Added: desktop/experimental/gnome-shell/debian/patches/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch?rev=36518&op=file
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch (added)
+++ desktop/experimental/gnome-shell/debian/patches/62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch [utf-8] Fri Jan 4 21:13:26 2013
@@ -1,0 +1,31 @@
+From 40b2f203bb0691f45d024c6bf59433cdb5712160 Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna at src.gnome.org>
+Date: Sun, 25 Nov 2012 23:51:44 +0100
+Subject: [PATCH 3/3] MessageTray: remove all tweens when tweening for state
+ parameters
+
+MessageTray._tween sets the state variable to the in-progress value,
+so it must be sure that at the end of the animation the value will
+be the corresponding final and nothing else will happen in between.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=683986
+---
+ js/ui/messageTray.js | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
+index 7079c19..e36f499 100644
+--- a/js/ui/messageTray.js
++++ b/js/ui/messageTray.js
+@@ -2051,6 +2051,8 @@ const MessageTray = new Lang.Class({
+ params.onCompleteScope = this;
+ params.onCompleteParams = [statevar, value, onComplete, onCompleteScope, onCompleteParams];
+
++ // Remove other tweens that could mess with the state machine
++ Tweener.removeTweens(actor);
+ Tweener.addTween(actor, params);
+
+ let valuing = (value == State.SHOWN) ? State.SHOWING : State.HIDING;
+--
+1.7.10.4
+
Modified: desktop/experimental/gnome-shell/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-shell/debian/patches/series?rev=36518&op=diff
==============================================================================
--- desktop/experimental/gnome-shell/debian/patches/series [utf-8] (original)
+++ desktop/experimental/gnome-shell/debian/patches/series [utf-8] Fri Jan 4 21:13:26 2013
@@ -4,3 +4,8 @@
27-nm-libexec-path.patch
29-Cope-with-clutter-being-built-with-both-new-and-old-.patch
30-remoteMenu-Prevent-the-shell-from-becoming-unrespons.patch
+40-shell-recorder-src-Set-frame-duration.patch
+50-Block-cancellation-of-the-unlock-dialog-when-draggin.patch
+60-MessageTray-fix-reentrancy-when-calling-out-to-the-g.patch
+61-MessageTray-restore-opacity-when-expanding-a-notific.patch
+62-MessageTray-remove-all-tweens-when-tweening-for-stat.patch
More information about the pkg-gnome-commits
mailing list