Bug#779980: unblock: gpaste/3.14-2
Package: release.debian.org
Followup-For: Bug #779980
User: release.debian.org@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 <kapouer@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-Antoine@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 <kapouer@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);
++ }
+ }
+ });
Reply to: