legacyTray: Temporarily reveal tray when icons are added

There is a balance to hit between discoverability and getting out
of the way, and the legacy tray currently fails in both regards.
To address the first issue, temporarily reveal the tray when a
new icon is added.

https://bugzilla.gnome.org/show_bug.cgi?id=746025
This commit is contained in:
Florian Müllner 2015-04-14 18:24:44 +02:00
parent 7277744dc0
commit 594a227bc1

View File

@ -1,4 +1,5 @@
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
@ -30,6 +31,7 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
// Offset of the original position from the bottom-right corner
const CONCEALED_VISIBLE_FRACTION = 0.2;
const REVEAL_ANIMATION_TIME = 0.2;
const TEMP_REVEAL_TIME = 2;
const BARRIER_THRESHOLD = 70;
const BARRIER_TIMEOUT = 1000;
@ -174,7 +176,15 @@ const LegacyTray = new Lang.Class({
}));
this._iconBox.add_actor(button);
this._sync();
if (!this._concealHandle.visible) {
this._concealHandle.show();
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, TEMP_REVEAL_TIME,
Lang.bind(this, function() {
this._concealHandle.hide();
return GLib.SOURCE_REMOVE;
}));
}
},
_onTrayIconRemoved: function(tm, icon) {