Merge ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/master-xubuntu-cancel-search into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/master
- Git
- lp:~3v1n0/ubuntu/+source/gnome-shell
- ubuntu/master-xubuntu-cancel-search
- Merge into ubuntu/master
Status: | Merged |
---|---|
Merged at revision: | 35c2f36937bbb2f798c66181662e13c3081dcd2d |
Proposed branch: | ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/master-xubuntu-cancel-search |
Merge into: | ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/master |
Prerequisite: | ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/master-3.29.92 |
Diff against target: |
325 lines (+275/-3) 6 files modified
debian/changelog (+9/-3) debian/patches/search-Cancel-search-provider-operations-on-clear.patch (+29/-0) debian/patches/search-Ignore-search-provider-results-metas-if-search-is-.patch (+30/-0) debian/patches/series (+4/-0) debian/patches/ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch (+167/-0) debian/patches/viewSelector-Cancel-search-on-overview-hidden.patch (+36/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Didier Roche-Tolomelli | Approve | ||
Review via email: mp+354050@code.launchpad.net |
This proposal supersedes a proposal from 2018-08-27.
Commit message
Description of the change
Added XUbuntuCancel method call for search providers
Didier Roche-Tolomelli (didrocks) wrote : Posted in a previous version of this proposal | # |
Marco Trevisan (Treviño) (3v1n0) wrote : Posted in a previous version of this proposal | # |
> I saw that you made some changes on the MR after Florian's comment on your
> patches. Is there anything you can borrow and refresh here?
Yes, I wanted to refresh in case a review (like in this case) was coming in time, so nothing functional has been changed there, but I can refresh it on that.
As per the two questions, let me know if you want get rid of that variable or use a property bound to the cancellable instead.
Didier Roche-Tolomelli (didrocks) wrote : Posted in a previous version of this proposal | # |
For the variable, it's really up to you and what is the most readable in your eyes. I just wanted to trigger that question so that you can think about it, but I have no strong opinion :)
Marco Trevisan (Treviño) (3v1n0) : Posted in a previous version of this proposal | # |
Marco Trevisan (Treviño) (3v1n0) : | # |
Didier Roche-Tolomelli (didrocks) wrote : | # |
Just a nitpick on wrong alignement, but otherwise, looks good :)
Preview Diff
1 | diff --git a/debian/changelog b/debian/changelog | |||
2 | index 6fbc804..16b0afa 100644 | |||
3 | --- a/debian/changelog | |||
4 | +++ b/debian/changelog | |||
5 | @@ -1,4 +1,4 @@ | |||
7 | 1 | gnome-shell (3.29.92-1ubuntu1) UNRELEASED; urgency=medium | 1 | gnome-shell (3.29.92-1ubuntu1) cosmic; urgency=medium |
8 | 2 | 2 | ||
9 | 3 | * Merge with debian, remaining changes: | 3 | * Merge with debian, remaining changes: |
10 | 4 | + Replace gnome-backgrounds dep with ubuntu-wallpapers and Suggests | 4 | + Replace gnome-backgrounds dep with ubuntu-wallpapers and Suggests |
11 | @@ -63,8 +63,14 @@ gnome-shell (3.29.92-1ubuntu1) UNRELEASED; urgency=medium | |||
12 | 63 | - Updated as per upstream review | 63 | - Updated as per upstream review |
13 | 64 | * d/p/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch: | 64 | * d/p/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch: |
14 | 65 | - Removed (applied upstream) | 65 | - Removed (applied upstream) |
17 | 66 | 66 | * d/p/search-Cancel-search-provider-operations-on-clear.patch, | |
18 | 67 | -- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 30 Aug 2018 09:08:20 -0500 | 67 | d/p/search-Ignore-search-provider-results-metas-if-search-is-.patch, |
19 | 68 | d/p/viewSelector-Cancel-search-on-overview-hidden.patch, | ||
20 | 69 | d/p/ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch: | ||
21 | 70 | - Add support for cancelling remote search providers when the overlay | ||
22 | 71 | is closed (and actually stop searches when requested from UI, LP: #1756826) | ||
23 | 72 | |||
24 | 73 | -- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 30 Aug 2018 17:59:08 -0500 | ||
25 | 68 | 74 | ||
26 | 69 | gnome-shell (3.29.92-1) experimental; urgency=medium | 75 | gnome-shell (3.29.92-1) experimental; urgency=medium |
27 | 70 | 76 | ||
28 | diff --git a/debian/patches/search-Cancel-search-provider-operations-on-clear.patch b/debian/patches/search-Cancel-search-provider-operations-on-clear.patch | |||
29 | 71 | new file mode 100644 | 77 | new file mode 100644 |
30 | index 0000000..052ee8a | |||
31 | --- /dev/null | |||
32 | +++ b/debian/patches/search-Cancel-search-provider-operations-on-clear.patch | |||
33 | @@ -0,0 +1,29 @@ | |||
34 | 1 | From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> | ||
35 | 2 | Date: Thu, 23 Aug 2018 18:14:38 +0200 | ||
36 | 3 | Subject: search: Cancel search provider operations on clear | ||
37 | 4 | |||
38 | 5 | Ensure that the search provider operations (just getResultMetas requests in the | ||
39 | 6 | current implementation) in progress are properly cancelled when we clear the UI, | ||
40 | 7 | otherwise returned results might still be added when not needed. | ||
41 | 8 | |||
42 | 9 | This is triggered for each provider by the SearchResults reset. | ||
43 | 10 | |||
44 | 11 | Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/183 | ||
45 | 12 | Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1756826 | ||
46 | 13 | Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/205 | ||
47 | 14 | --- | ||
48 | 15 | js/ui/search.js | 1 + | ||
49 | 16 | 1 file changed, 1 insertion(+) | ||
50 | 17 | |||
51 | 18 | diff --git a/js/ui/search.js b/js/ui/search.js | ||
52 | 19 | index 1fb54b4..804be95 100644 | ||
53 | 20 | --- a/js/ui/search.js | ||
54 | 21 | +++ b/js/ui/search.js | ||
55 | 22 | @@ -192,6 +192,7 @@ var SearchResultsBase = new Lang.Class({ | ||
56 | 23 | }, | ||
57 | 24 | |||
58 | 25 | clear() { | ||
59 | 26 | + this._cancellable.cancel(); | ||
60 | 27 | for (let resultId in this._resultDisplays) | ||
61 | 28 | this._resultDisplays[resultId].actor.destroy(); | ||
62 | 29 | this._resultDisplays = {}; | ||
63 | diff --git a/debian/patches/search-Ignore-search-provider-results-metas-if-search-is-.patch b/debian/patches/search-Ignore-search-provider-results-metas-if-search-is-.patch | |||
64 | 0 | new file mode 100644 | 30 | new file mode 100644 |
65 | index 0000000..27645a5 | |||
66 | --- /dev/null | |||
67 | +++ b/debian/patches/search-Ignore-search-provider-results-metas-if-search-is-.patch | |||
68 | @@ -0,0 +1,30 @@ | |||
69 | 1 | From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> | ||
70 | 2 | Date: Thu, 30 Aug 2018 07:11:24 +0200 | ||
71 | 3 | Subject: search: Ignore search provider results metas if search is cancelled | ||
72 | 4 | |||
73 | 5 | Call updateSearch callback with no results when the search provider has been | ||
74 | 6 | cancelled, without doing any logging. | ||
75 | 7 | |||
76 | 8 | Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/183 | ||
77 | 9 | Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1756826 | ||
78 | 10 | Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/205 | ||
79 | 11 | --- | ||
80 | 12 | js/ui/search.js | 5 +++-- | ||
81 | 13 | 1 file changed, 3 insertions(+), 2 deletions(-) | ||
82 | 14 | |||
83 | 15 | diff --git a/js/ui/search.js b/js/ui/search.js | ||
84 | 16 | index 804be95..dd4bfad 100644 | ||
85 | 17 | --- a/js/ui/search.js | ||
86 | 18 | +++ b/js/ui/search.js | ||
87 | 19 | @@ -227,8 +227,9 @@ var SearchResultsBase = new Lang.Class({ | ||
88 | 20 | |||
89 | 21 | this.provider.getResultMetas(metasNeeded, metas => { | ||
90 | 22 | if (metas.length != metasNeeded.length) { | ||
91 | 23 | - log('Wrong number of result metas returned by search provider ' + this.provider.id + | ||
92 | 24 | - ': expected ' + metasNeeded.length + ' but got ' + metas.length); | ||
93 | 25 | + if (!this._cancellable.is_cancelled()) | ||
94 | 26 | + log(`Wrong number of result metas returned by search provider ${this.provider.id}` + | ||
95 | 27 | + `: expected ${metasNeeded.length} but got ${metas.length}`); | ||
96 | 28 | callback(false); | ||
97 | 29 | return; | ||
98 | 30 | } | ||
99 | diff --git a/debian/patches/series b/debian/patches/series | |||
100 | index c198fe6..6833a31 100644 | |||
101 | --- a/debian/patches/series | |||
102 | +++ b/debian/patches/series | |||
103 | @@ -22,3 +22,7 @@ dnd-Nullify-_dragActor-after-we-ve-destroyed-it-and-avoid.patch | |||
104 | 22 | messageList-stop-syncing-if-closeButton-has-been-destroye.patch | 22 | messageList-stop-syncing-if-closeButton-has-been-destroye.patch |
105 | 23 | automountManager-remove-allowAutorun-expire-timeout-on-vo.patch | 23 | automountManager-remove-allowAutorun-expire-timeout-on-vo.patch |
106 | 24 | workaround_crasher_fractional_scaling.patch | 24 | workaround_crasher_fractional_scaling.patch |
107 | 25 | viewSelector-Cancel-search-on-overview-hidden.patch | ||
108 | 26 | search-Cancel-search-provider-operations-on-clear.patch | ||
109 | 27 | search-Ignore-search-provider-results-metas-if-search-is-.patch | ||
110 | 28 | ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch | ||
111 | diff --git a/debian/patches/ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch b/debian/patches/ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch | |||
112 | 25 | new file mode 100644 | 29 | new file mode 100644 |
113 | index 0000000..f601fd2 | |||
114 | --- /dev/null | |||
115 | +++ b/debian/patches/ubuntu/search-call-XUbuntuCancel-method-on-providers-when-no-dat.patch | |||
116 | @@ -0,0 +1,167 @@ | |||
117 | 1 | From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> | ||
118 | 2 | Date: Thu, 23 Aug 2018 20:00:57 +0200 | ||
119 | 3 | Subject: search: call XUbuntuCancel method on providers when no data is | ||
120 | 4 | needed | ||
121 | 5 | |||
122 | 6 | Add XUbuntuCancel method to search providers and call it when a search provider | ||
123 | 7 | is still doing operations. | ||
124 | 8 | Ignore the result when the method does not exist or is cancelled. | ||
125 | 9 | |||
126 | 10 | This will allow to stop operations on providers. | ||
127 | 11 | |||
128 | 12 | Fixes LP: #1756826 | ||
129 | 13 | |||
130 | 14 | Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/183 | ||
131 | 15 | Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1756826 | ||
132 | 16 | Forwarded: not-needed | ||
133 | 17 | --- | ||
134 | 18 | data/org.gnome.ShellSearchProvider.xml | 6 ++++++ | ||
135 | 19 | data/org.gnome.ShellSearchProvider2.xml | 6 ++++++ | ||
136 | 20 | js/ui/remoteSearch.js | 15 +++++++++++++++ | ||
137 | 21 | js/ui/search.js | 34 +++++++++++++++++++++++++++++++++ | ||
138 | 22 | 4 files changed, 61 insertions(+) | ||
139 | 23 | |||
140 | 24 | diff --git a/data/org.gnome.ShellSearchProvider.xml b/data/org.gnome.ShellSearchProvider.xml | ||
141 | 25 | index 78ad305..393cb01 100644 | ||
142 | 26 | --- a/data/org.gnome.ShellSearchProvider.xml | ||
143 | 27 | +++ b/data/org.gnome.ShellSearchProvider.xml | ||
144 | 28 | @@ -69,5 +69,11 @@ | ||
145 | 29 | <method name="ActivateResult"> | ||
146 | 30 | <arg type="s" name="identifier" direction="in" /> | ||
147 | 31 | </method> | ||
148 | 32 | + | ||
149 | 33 | + <!-- | ||
150 | 34 | + XUbuntuCancel: | ||
151 | 35 | + Cancel the current search operation | ||
152 | 36 | + --> | ||
153 | 37 | + <method name="XUbuntuCancel" /> | ||
154 | 38 | </interface> | ||
155 | 39 | </node> | ||
156 | 40 | diff --git a/data/org.gnome.ShellSearchProvider2.xml b/data/org.gnome.ShellSearchProvider2.xml | ||
157 | 41 | index 9502340..8141bc0 100644 | ||
158 | 42 | --- a/data/org.gnome.ShellSearchProvider2.xml | ||
159 | 43 | +++ b/data/org.gnome.ShellSearchProvider2.xml | ||
160 | 44 | @@ -83,5 +83,11 @@ | ||
161 | 45 | <arg type="as" name="terms" direction="in" /> | ||
162 | 46 | <arg type="u" name="timestamp" direction="in" /> | ||
163 | 47 | </method> | ||
164 | 48 | + | ||
165 | 49 | + <!-- | ||
166 | 50 | + XUbuntuCancel: | ||
167 | 51 | + Cancel the current search operation | ||
168 | 52 | + --> | ||
169 | 53 | + <method name="XUbuntuCancel" /> | ||
170 | 54 | </interface> | ||
171 | 55 | </node> | ||
172 | 56 | diff --git a/js/ui/remoteSearch.js b/js/ui/remoteSearch.js | ||
173 | 57 | index 3b847af..9245745 100644 | ||
174 | 58 | --- a/js/ui/remoteSearch.js | ||
175 | 59 | +++ b/js/ui/remoteSearch.js | ||
176 | 60 | @@ -31,6 +31,7 @@ const SearchProviderIface = ` | ||
177 | 61 | <method name="ActivateResult"> | ||
178 | 62 | <arg type="s" direction="in" /> | ||
179 | 63 | </method> | ||
180 | 64 | +<method name="XUbuntuCancel" /> | ||
181 | 65 | </interface> | ||
182 | 66 | </node>`; | ||
183 | 67 | |||
184 | 68 | @@ -59,6 +60,7 @@ const SearchProvider2Iface = ` | ||
185 | 69 | <arg type="as" direction="in" /> | ||
186 | 70 | <arg type="u" direction="in" /> | ||
187 | 71 | </method> | ||
188 | 72 | +<method name="XUbuntuCancel" /> | ||
189 | 73 | </interface> | ||
190 | 74 | </node>`; | ||
191 | 75 | |||
192 | 76 | @@ -312,6 +314,19 @@ var RemoteSearchProvider = new Lang.Class({ | ||
193 | 77 | cancellable); | ||
194 | 78 | }, | ||
195 | 79 | |||
196 | 80 | + XUbuntuCancel(cancellable, callback) { | ||
197 | 81 | + this.proxy.XUbuntuCancelRemote((results, error) => { | ||
198 | 82 | + if (error && | ||
199 | 83 | + !error.matches(Gio.DBusError, Gio.DBusError.UNKNOWN_METHOD) && | ||
200 | 84 | + !error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { | ||
201 | 85 | + log('Received error from DBus search provider %s during XUbuntuCancel: %s'.format(this.id, String(error))); | ||
202 | 86 | + } else if (callback && !error) { | ||
203 | 87 | + callback(); | ||
204 | 88 | + } | ||
205 | 89 | + }, | ||
206 | 90 | + cancellable); | ||
207 | 91 | + }, | ||
208 | 92 | + | ||
209 | 93 | activateResult(id) { | ||
210 | 94 | this.proxy.ActivateResultRemote(id); | ||
211 | 95 | }, | ||
212 | 96 | diff --git a/js/ui/search.js b/js/ui/search.js | ||
213 | 97 | index dd4bfad..629664e 100644 | ||
214 | 98 | --- a/js/ui/search.js | ||
215 | 99 | +++ b/js/ui/search.js | ||
216 | 100 | @@ -225,7 +225,9 @@ var SearchResultsBase = new Lang.Class({ | ||
217 | 101 | this._cancellable.cancel(); | ||
218 | 102 | this._cancellable.reset(); | ||
219 | 103 | |||
220 | 104 | + this.provider.resultsMetasInProgress = true; | ||
221 | 105 | this.provider.getResultMetas(metasNeeded, metas => { | ||
222 | 106 | + this.provider.resultsMetasInProgress = this._cancellable.is_cancelled(); | ||
223 | 107 | if (metas.length != metasNeeded.length) { | ||
224 | 108 | if (!this._cancellable.is_cancelled()) | ||
225 | 109 | log(`Wrong number of result metas returned by search provider ${this.provider.id}` + | ||
226 | 110 | @@ -450,6 +452,10 @@ var SearchResults = new Lang.Class({ | ||
227 | 111 | |||
228 | 112 | this._searchTimeoutId = 0; | ||
229 | 113 | this._cancellable = new Gio.Cancellable(); | ||
230 | 114 | + this._searchCancelCancellable = new Gio.Cancellable(); | ||
231 | 115 | + this._cancellable.connect(() => { | ||
232 | 116 | + this._cancelSearchProviderRequest(); | ||
233 | 117 | + }); | ||
234 | 118 | |||
235 | 119 | this._registerProvider(new AppDisplay.AppSearchProvider()); | ||
236 | 120 | this._reloadRemoteProviders(); | ||
237 | 121 | @@ -491,11 +497,32 @@ var SearchResults = new Lang.Class({ | ||
238 | 122 | } | ||
239 | 123 | }, | ||
240 | 124 | |||
241 | 125 | + _cancelSearchProviderRequest() { | ||
242 | 126 | + if (this._terms.length != 0 || this._searchCancelTimeoutId > 0) | ||
243 | 127 | + return; | ||
244 | 128 | + | ||
245 | 129 | + this._searchCancelTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => { | ||
246 | 130 | + this._providers.forEach(provider => { | ||
247 | 131 | + if (provider.isRemoteProvider && | ||
248 | 132 | + (provider.searchInProgress || provider.resultsMetasInProgress)) { | ||
249 | 133 | + provider.XUbuntuCancel(this._searchCancelCancellable, () => { | ||
250 | 134 | + provider.searchInProgress = false; | ||
251 | 135 | + provider.resultsMetasInProgress = false; | ||
252 | 136 | + }); | ||
253 | 137 | + } | ||
254 | 138 | + }); | ||
255 | 139 | + | ||
256 | 140 | + delete this._searchCancelTimeoutId; | ||
257 | 141 | + return GLib.SOURCE_REMOVE; | ||
258 | 142 | + }); | ||
259 | 143 | + }, | ||
260 | 144 | + | ||
261 | 145 | _reset() { | ||
262 | 146 | this._terms = []; | ||
263 | 147 | this._results = {}; | ||
264 | 148 | this._clearDisplay(); | ||
265 | 149 | this._clearSearchTimeout(); | ||
266 | 150 | + this._cancelSearchProviderRequest(); | ||
267 | 151 | this._defaultResult = null; | ||
268 | 152 | this._startingSearch = false; | ||
269 | 153 | |||
270 | 154 | @@ -562,6 +589,13 @@ var SearchResults = new Lang.Class({ | ||
271 | 155 | if (this._terms.length > 0) | ||
272 | 156 | isSubSearch = searchString.indexOf(previousSearchString) == 0; | ||
273 | 157 | |||
274 | 158 | + this._searchCancelCancellable.cancel(); | ||
275 | 159 | + this._searchCancelCancellable.reset(); | ||
276 | 160 | + if (this._searchCancelTimeoutId > 0) { | ||
277 | 161 | + GLib.source_remove(this._searchCancelTimeoutId); | ||
278 | 162 | + delete this._searchCancelTimeoutId; | ||
279 | 163 | + } | ||
280 | 164 | + | ||
281 | 165 | this._terms = terms; | ||
282 | 166 | this._isSubSearch = isSubSearch; | ||
283 | 167 | this._updateSearchProgress(); | ||
284 | diff --git a/debian/patches/viewSelector-Cancel-search-on-overview-hidden.patch b/debian/patches/viewSelector-Cancel-search-on-overview-hidden.patch | |||
285 | 0 | new file mode 100644 | 168 | new file mode 100644 |
286 | index 0000000..e69ae1e | |||
287 | --- /dev/null | |||
288 | +++ b/debian/patches/viewSelector-Cancel-search-on-overview-hidden.patch | |||
289 | @@ -0,0 +1,36 @@ | |||
290 | 1 | From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> | ||
291 | 2 | Date: Thu, 23 Aug 2018 16:11:10 +0200 | ||
292 | 3 | Subject: viewSelector: Cancel search on overview hidden | ||
293 | 4 | |||
294 | 5 | Currently when the overview is hidden, any pending search is kept alive, not only | ||
295 | 6 | at remote search provider level (as per issue #183), but even the shell providers | ||
296 | 7 | proxies continue to get and process data. This happens even if this is not needed | ||
297 | 8 | anymore, while the UI reset is performed only next time that the overview is | ||
298 | 9 | shown (causing some more computation presentation time). | ||
299 | 10 | |||
300 | 11 | In order to stop this to happen, when the overview is hidden, we have to unset | ||
301 | 12 | the search entry to an empty value as this would make SearchResults to have empty | ||
302 | 13 | terms list and that would make the proxies cancellable to be triggered (without | ||
303 | 14 | causing any further search to start). | ||
304 | 15 | |||
305 | 16 | https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/205 | ||
306 | 17 | |||
307 | 18 | Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/183 | ||
308 | 19 | Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1756826 | ||
309 | 20 | Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/205 | ||
310 | 21 | --- | ||
311 | 22 | js/ui/viewSelector.js | 1 + | ||
312 | 23 | 1 file changed, 1 insertion(+) | ||
313 | 24 | |||
314 | 25 | diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js | ||
315 | 26 | index 2d5c33f..c650886 100644 | ||
316 | 27 | --- a/js/ui/viewSelector.js | ||
317 | 28 | +++ b/js/ui/viewSelector.js | ||
318 | 29 | @@ -311,6 +311,7 @@ var ViewSelector = new Lang.Class({ | ||
319 | 30 | }, | ||
320 | 31 | |||
321 | 32 | hide() { | ||
322 | 33 | + this.reset(); | ||
323 | 34 | this._workspacesDisplay.hide(); | ||
324 | 35 | }, | ||
325 | 36 |
Ok, this looks good to me, see some of my questions.
I saw that you made some changes on the MR after Florian's comment on your patches. Is there anything you can borrow and refresh here?
See as well my 2 questions/comments