[gnome-shell] messageTray: use a "hot corner" to summon the tray
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] messageTray: use a "hot corner" to summon the tray
- Date: Mon, 5 Dec 2011 04:58:07 +0000 (UTC)
commit 0cbaeaefedef84d57b1c24be37927ac6c4837edf
Author: Rui Matos <tiagomatos gmail com>
Date: Fri Nov 4 00:26:49 2011 +0000
messageTray: use a "hot corner" to summon the tray
Instead of leaving the tray covering the whole last pixel row when it's
hidden, hide it completely. This avoids mouse events not being delivered to
application windows on the last pixel row.
To summon the tray we use a single reactive pixel on the corner.
https://bugzilla.gnome.org/show_bug.cgi?id=663366
js/ui/messageTray.js | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 79dbe3d..057b049 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1430,8 +1430,16 @@ const MessageTray = new Lang.Class({
this._notificationRemoved = false;
this._reNotifyAfterHideNotification = null;
+ this._corner = new Clutter.Rectangle({ width: 1,
+ height: 1,
+ opacity: 0,
+ reactive: true });
+ this._corner.connect('enter-event', Lang.bind(this, this._onCornerEnter));
+ Main.layoutManager.trayBox.add_actor(this._corner);
+ Main.layoutManager.trackChrome(this._corner);
+
Main.layoutManager.trayBox.add_actor(this.actor);
- this.actor.y = -1;
+ this.actor.y = this.actor.height;
Main.layoutManager.trackChrome(this.actor);
Main.layoutManager.trackChrome(this._notificationBin);
@@ -1470,12 +1478,24 @@ const MessageTray = new Lang.Class({
this._chatSummaryItemsCount = 0;
},
+ _onCornerEnter: function(actor, event) {
+ this._pointerInSummary = true;
+ this._updateState();
+ },
+
_setSizePosition: function() {
let monitor = Main.layoutManager.bottomMonitor;
this._notificationBin.x = 0;
this._notificationBin.width = monitor.width;
this._summaryBin.x = 0;
this._summaryBin.width = monitor.width;
+
+ if (St.Widget.get_default_direction() == St.TextDirection.RTL)
+ this._corner.x = 0;
+ else
+ this._corner.x = Main.layoutManager.trayBox.width - 1;
+
+ this._corner.y = Main.layoutManager.trayBox.height - 1;
},
contains: function(source) {
@@ -2076,7 +2096,7 @@ const MessageTray = new Lang.Class({
_hideTray: function() {
this._tween(this.actor, '_trayState', State.HIDDEN,
- { y: -1,
+ { y: this.actor.height,
time: ANIMATION_TIME,
transition: 'easeOutQuad'
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]