[gnome-shell] grabHelper: Drop to the actor clicked on
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] grabHelper: Drop to the actor clicked on
- Date: Sat, 8 Dec 2012 00:56:39 +0000 (UTC)
commit 066e5cddb5c939ea95f406a383c5da52a0997f4e
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Nov 26 14:55:03 2012 -0500
grabHelper: Drop to the actor clicked on
This is necessary for child popups in menus, e.g. while in a combo box,
clicking outside of the user menu should drop the entire menu, but
clicking on the user menu itself should only drop the combo box.
https://bugzilla.gnome.org/show_bug.cgi?id=689109
js/ui/grabHelper.js | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js
index aacce43..b9e661f 100644
--- a/js/ui/grabHelper.js
+++ b/js/ui/grabHelper.js
@@ -103,6 +103,16 @@ const GrabHelper = new Lang.Class({
return -1;
},
+ _actorInGrabStack: function(actor) {
+ while (actor) {
+ let idx = this._findStackIndex(actor);
+ if (idx >= 0)
+ return idx;
+ actor = actor.get_parent();
+ }
+ return -1;
+ },
+
isActorGrabbed: function(actor) {
return this._findStackIndex(actor) >= 0;
},
@@ -323,7 +333,8 @@ const GrabHelper = new Lang.Class({
// which should be a release event.
if (press)
this._ignoreRelease = true;
- this.ungrab({ actor: this._grabStack[0].actor });
+ let i = this._actorInGrabStack(event.get_source()) + 1;
+ this.ungrab({ actor: this._grabStack[i].actor });
}
return this._modalCount > 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]