[gnome-shell/gbsneto/icon-grid-dnd: 92/117] appDisplay: Add event blocker inhibition API



commit a528f9e7b92da0e1448ed441e09a8e808a2e382c
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/603

 js/ui/appDisplay.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 3cb71f1d2..94a7c7474 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -338,6 +338,8 @@ var AllView = class AllView extends BaseAppView {
         this._folderSettings.connect('changed::folder-children', () => {
             Main.queueDeferredWork(this._redisplayWorkId);
         });
+
+        this._nEventBlockerInhibits = 0;
     }
 
     _itemNameChanged(item) {
@@ -672,6 +674,16 @@ 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() {
+        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]