[gnome-shell/gnome-3-2] messageTray: use a "hot corner" to summon the tray
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-2] messageTray: use a "hot corner" to summon the tray
- Date: Wed, 18 Jan 2012 15:32:28 +0000 (UTC)
commit 80dfda17cdf2d537c9424c009c0c839ea9f53e9b
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 8f6011a..b87dd14 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1419,8 +1419,16 @@ MessageTray.prototype = {
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);
@@ -1459,12 +1467,24 @@ MessageTray.prototype = {
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) {
@@ -2057,7 +2077,7 @@ MessageTray.prototype = {
_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]