[gnome-shell] messageTray: Hide from picks during DND operations
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] messageTray: Hide from picks during DND operations
- Date: Fri, 27 Feb 2015 13:24:32 +0000 (UTC)
commit d56411729b8f41738b6d54a00ebe944f6f85c76f
Author: Florian Müllner <fmuellner gnome org>
Date: Sat Feb 21 09:05:58 2015 +0100
messageTray: Hide from picks during DND operations
As it is impossible to interact with notification banners while a DND
operation is ongoing, we can temporarily hide the banner container from
picks so that DND works as expected even while a banner is showing.
https://bugzilla.gnome.org/show_bug.cgi?id=744912
js/ui/messageTray.js | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 84408f8..f4b4f88 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1555,6 +1555,25 @@ const MessageTray = new Lang.Class({
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
+ Main.overview.connect('window-drag-begin',
+ Lang.bind(this, this._onDragBegin));
+ Main.overview.connect('window-drag-cancelled',
+ Lang.bind(this, this._onDragEnd));
+ Main.overview.connect('window-drag-end',
+ Lang.bind(this, this._onDragEnd));
+
+ Main.overview.connect('item-drag-begin',
+ Lang.bind(this, this._onDragBegin));
+ Main.overview.connect('item-drag-cancelled',
+ Lang.bind(this, this._onDragEnd));
+ Main.overview.connect('item-drag-end',
+ Lang.bind(this, this._onDragEnd));
+
+ Main.xdndHandler.connect('drag-begin',
+ Lang.bind(this, this._onDragBegin));
+ Main.xdndHandler.connect('drag-end',
+ Lang.bind(this, this._onDragEnd));
+
Main.wm.addKeybinding('focus-active-notification',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
@@ -1571,6 +1590,14 @@ const MessageTray = new Lang.Class({
this._updateState();
},
+ _onDragBegin: function() {
+ Shell.util_set_hidden_from_pick(this.actor, true);
+ },
+
+ _onDragEnd: function() {
+ Shell.util_set_hidden_from_pick(this.actor, false);
+ },
+
_onNotificationKeyRelease: function(actor, event) {
if (event.get_key_symbol() == Clutter.KEY_Escape && event.get_state() == 0) {
this._expireNotification();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]