messageTray: Always close the tray when clicking outside of it

Even when a summary box pointer item is up.
This commit is contained in:
Jasper St. Pierre 2012-08-16 13:49:35 -04:00
parent 3568e6d42d
commit 4dfe3d21e1
2 changed files with 13 additions and 2 deletions

View File

@ -84,7 +84,14 @@ const GrabHelper = new Lang.Class({
},
get currentGrab() {
return this._grabStack[this._grabStack.length - 1] || {};
if (!this._grabStack.length)
return {};
let idx = this._grabStack.length - 1;
while (idx >= 0 && this._grabStack[idx].untracked)
idx--;
return this._grabStack[idx];
},
_findStackIndex: function(actor) {
@ -132,10 +139,13 @@ const GrabHelper = new Lang.Class({
// revert it back, and re-focus the previously-focused window (if
// another window hasn't been explicitly focused before then).
//
//
// If @params contains { untracked: true }, then it will be skipped
// when the grab helper ungrabs for you, or when calculating
// currentGrab.
grab: function(params) {
params = Params.parse(params, { actor: null,
modal: false,
untracked: false,
grabFocus: false,
onUngrab: null });

View File

@ -2213,6 +2213,7 @@ const MessageTray = new Lang.Class({
}
this._grabHelper.grab({ actor: this._summaryBoxPointer.bin.child,
untracked: true,
grabFocus: true,
onUngrab: Lang.bind(this, this._onSummaryBoxPointerUngrabbed) });
this._lock();