From 3031036cb038602dcd8597a8e3c2ed4eb15db9e2 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 16 Aug 2012 13:48:22 -0400 Subject: [PATCH] grabHelper: Make sure to call onUngrabbed for all popped actors --- js/ui/grabHelper.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js index a330c04a3..780377ff9 100644 --- a/js/ui/grabHelper.js +++ b/js/ui/grabHelper.js @@ -207,6 +207,7 @@ const GrabHelper = new Lang.Class({ return; let poppedGrab = this._grabStack[grabStackIndex]; + let poppedGrabs = this._grabStack.slice(grabStackIndex); // "Pop" poppedGrab and everything after off by truncating the array. this._grabStack.length = grabStackIndex; @@ -218,8 +219,10 @@ const GrabHelper = new Lang.Class({ let focus = global.stage.key_focus; let hadFocus = focus && this._isWithinGrabbedActor(focus); - if (poppedGrab.onUngrab) - poppedGrab.onUngrab(); + for (let i = 0; i < poppedGrabs.length; i++) { + if (poppedGrabs[i].onUngrab) + poppedGrabs[i].onUngrab(); + } // If we took away the last grab, ungrab ourselves. if (this._grabStack.length == 0)