[gnome-shell/gbsneto/icon-grid-part2: 3/10] appDisplay: Add event blocker inhibition API
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/icon-grid-part2: 3/10] appDisplay: Add event blocker inhibition API
- Date: Thu, 8 Aug 2019 00:57:58 +0000 (UTC)
commit 768974a083824e3265d3d9126d4aaeaef0dfebf7
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri Jun 28 19:44:20 2019 -0300
appDisplay: Add event blocker inhibition API
The event blocker is an actor that is added in between the
icon grid and the app folder popup in order to guarantee
that clicking outside the app folder will collapse it.
However, the next patch will require allowing dragging events
to be passed to folder icons, and the event blocker gets in
our way here, preventing drag n' drop to work properly.
Add an API to inhibit the event blocker. This API will be
used by the app folders while an item is dragged.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/664
js/ui/appDisplay.js | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index b2cdb3d9de..6bd3b1398b 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -326,6 +326,8 @@ var AllView = class AllView extends BaseAppView {
this._folderSettings.connect('changed::folder-children', () => {
Main.queueDeferredWork(this._redisplayWorkId);
});
+
+ this._nEventBlockerInhibits = 0;
}
_redisplay() {
@@ -668,6 +670,19 @@ var AllView = class AllView extends BaseAppView {
for (let i = 0; i < this.folderIcons.length; i++)
this.folderIcons[i].adaptToSize(availWidth, availHeight);
}
+
+ inhibitEventBlocker() {
+ this._nEventBlockerInhibits++;
+ this._eventBlocker.visible = this._nEventBlockerInhibits == 0;
+ }
+
+ uninhibitEventBlocker() {
+ if (this._nEventBlockerInhibits === 0)
+ throw new Error('Not inhibited');
+
+ this._nEventBlockerInhibits--;
+ this._eventBlocker.visible = this._nEventBlockerInhibits == 0;
+ }
};
Signals.addSignalMethods(AllView.prototype);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]