Package: release.debian.org Followup-For: Bug #779980 User: release.debian....@packages.debian.org Usertags: unblock
Here's the debdiff before i upload.
diff -Nru gpaste-3.14/debian/changelog gpaste-3.14/debian/changelog --- gpaste-3.14/debian/changelog 2014-10-11 12:18:59.000000000 +0200 +++ gpaste-3.14/debian/changelog 2015-03-07 15:05:15.000000000 +0100 @@ -1,3 +1,9 @@ +gpaste (3.14-2) unstable; urgency=medium + + * Upstream patch fixing gnome-shell extension crashes. + + -- Jérémy Lal <kapo...@melix.org> Sat, 07 Mar 2015 14:44:36 +0100 + gpaste (3.14-1) unstable; urgency=medium * Imported Upstream version 3.14 (Closes: #764803). diff -Nru gpaste-3.14/debian/patches/series gpaste-3.14/debian/patches/series --- gpaste-3.14/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ gpaste-3.14/debian/patches/series 2015-03-07 15:03:28.000000000 +0100 @@ -0,0 +1 @@ +upstream-fix-crashes-0e899af5.patch diff -Nru gpaste-3.14/debian/patches/upstream-fix-crashes-0e899af5.patch gpaste-3.14/debian/patches/upstream-fix-crashes-0e899af5.patch --- gpaste-3.14/debian/patches/upstream-fix-crashes-0e899af5.patch 1970-01-01 01:00:00.000000000 +0100 +++ gpaste-3.14/debian/patches/upstream-fix-crashes-0e899af5.patch 2015-03-07 15:03:28.000000000 +0100 @@ -0,0 +1,83 @@ +From: Marc-Antoine Perennou <marc-anto...@perennou.com> +Last-Update: 2015-03-07 +Description: gnome-shell: fix weird gjs gsignal bug +Origin: https://github.com/Keruspe/GPaste/commit/0e899af538631026c6cd739986ea854f79b91c95 +Bug: https://github.com/Keruspe/GPaste/issues/106 +Reviewed-By: Jérémy Lal <kapo...@melix.org> + +--- a/src/gnome-shell/indicator.js ++++ b/src/gnome-shell/indicator.js +@@ -86,8 +86,9 @@ + this._dummyHistoryItem.update(); + this._prefsItem = new PrefsItem.GPastePrefsItem(this.menu); + this._emptyHistoryItem = new EmptyHistoryItem.GPasteEmptyHistoryItem(this._client); ++ this._switch = new StateSwitch.GPasteStateSwitch(this._client); + +- this._addToHeader(new StateSwitch.GPasteStateSwitch(this._client)); ++ this._addToHeader(this._switch); + this._addToHeader(this._searchItem); + this._actions.actor.add(this._prefsItem, { expand: true, x_fill: false }); + this._actions.actor.add(this._emptyHistoryItem, { expand: true, x_fill: false }); +@@ -97,6 +98,7 @@ + this._refresh(0); + + this._clientShowId = this._client.connect('show-history', Lang.bind(this, this._popup)); ++ this._clientTrackingId = this._client.connect('tracking', Lang.bind(this, this._toggle)); + + this._onStateChanged (true); + +@@ -239,6 +241,10 @@ + this._selectSearch(true); + }, + ++ _toggle: function(c, state) { ++ this._switch.toggle(state); ++ }, ++ + _selectSearch: function(active) { + if (this._history.length > 0) { + this._searchItem.setActive(active); +@@ -281,6 +287,7 @@ + _onDestroy: function() { + this._client.disconnect(this._clientUpdateId); + this._client.disconnect(this._clientShowId); ++ this._client.disconnect(this._clientTrackingId); + this._settings.disconnect(this._settingsMaxSizeChangedId); + this._settings.disconnect(this._settingsSizeChangedId); + } +--- a/src/gnome-shell/stateSwitch.js ++++ b/src/gnome-shell/stateSwitch.js +@@ -35,27 +35,18 @@ + this._client = client; + this._fromDaemon = false; + +- this._clientTrackingId = client.connect('tracking', Lang.bind(this, function(c, state) { +- this._toggle(state); +- })); +- this._toggle(client.is_active()); +- +- this.connect('toggled', Lang.bind(this, function() { +- if (!this._fromDaemon) { +- client.track(this.state, null); +- } +- })); +- +- this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); ++ this.connect('toggled', Lang.bind(this, this._onToggle)); + }, + +- _toggle: function(state) { ++ toggle: function(state) { + this._fromDaemon = true; + this.setToggleState(state); + this._fromDaemon = false; + }, + +- _onDestroy: function() { +- this._client.disconnect(this._clientTrackingId); ++ _onToggle: function() { ++ if (!this._fromDaemon) { ++ this._client.track(this.state, null); ++ } + } + });