allView: Ensure event blocker is reactive before popup is open

The event blocker in AllView is responsible for stealing click events
from the icon grid and closing the folder popup. The event blocker is
kept unreactive when no folder popup is visible, and it's made reactive
as a response to the 'open-state-changed' signal.

Using this signal, though, is problematic. When opening an app folder,
the icon grid first opens space for the folder to fit in; during this
period, it's possible to click on another folder icon, and break the
icon grid state.

Make sure the event blocker is reactive immediately after clicking on
a folder icon.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1470

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/816
This commit is contained in:
Georges Basile Stavracas Neto 2019-11-11 13:10:53 -03:00
parent 697912d8a4
commit fea5ecc9e8

View File

@ -600,6 +600,7 @@ var AllView = GObject.registerClass({
openSpaceForPopup(item, side, nRows) {
this._updateIconOpacities(true);
this._displayingPopup = true;
this._eventBlocker.reactive = true;
this._grid.openExtraSpace(item, side, nRows);
}