3.6 compatibility fixes

master
Jens Lody 11 years ago
parent b1e4f59a64
commit 50ef18ca8c
  1. 2
      data/metadata.json.in
  2. 56
      src/extension.js

@ -2,7 +2,7 @@
"uuid": "@uuid@",
"name": "Top Notification",
"description": "Place shell notifications under the panel instead of above the message-tray",
"shell-version": [ "3.8", "3.10" ],
"shell-version": [ "3.6", "3.8", "3.10" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

@ -70,11 +70,18 @@ let extensionShowNotification = function () {
this._notification = this._notificationQueue.shift();
this._userActiveWhileNotificationShown = this.idleMonitor.get_idletime() <= IDLE_TIME;
if (ExtensionUtils.versionCheck(['3.7', '3.8', '3.9', '3.10'], Config.PACKAGE_VERSION)) {
if (!this._userActiveWhileNotificationShown) {
// If the user isn't active, set up a watch to let us know
// when the user becomes active.
this.idleMonitor.add_user_active_watch(Lang.bind(this, this._onIdleMonitorBecameActive));
}
}
else
{
this._idleMonitorWatchId = this.idleMonitor.add_watch(IDLE_TIME,
Lang.bind(this, this._onIdleMonitorWatch));
}
this._notificationClickedId = this._notification.connect('done-displaying',
Lang.bind(this, this._escapeTray));
@ -142,6 +149,7 @@ let extensionHideNotification = function(animate) {
this._notification.disconnect(this._notificationExpandedId);
this._notificationExpandedId = 0;
}
if (ExtensionUtils.versionCheck(['3.7', '3.8', '3.9', '3.10'], Config.PACKAGE_VERSION)) {
if (this._notificationClickedId) {
this._notification.disconnect(this._notificationClickedId);
this._notificationClickedId = 0;
@ -161,10 +169,10 @@ let extensionHideNotification = function(animate) {
if (animate) {
this._tween(this._notificationWidget, '_notificationState', State.HIDDEN,
// JRL changes begin
// { y: this.actor.height,
// JRL changes begin
//{ y: this.actor.height,
{ y: -global.screen_height,
// JRL changes end
// JRL changes end
opacity: 0,
time: ANIMATION_TIME,
transition: 'easeOutQuad',
@ -173,10 +181,10 @@ let extensionHideNotification = function(animate) {
});
} else {
Tweener.removeTweens(this._notificationWidget);
// JRL changes begin
// this._notificationWidget.y = this.actor.height;
// JRL changes begin
//this._notificationWidget.y = this.actor.height;
this._notificationWidget.y = -global.screen_height;
// JRL changes end
// JRL changes end
this._notificationWidget.opacity = 0;
this._notificationState = State.HIDDEN;
this._hideNotificationCompleted();
@ -194,6 +202,33 @@ let extensionHideNotification = function(animate) {
if (this._notificationRemoved) {
Tweener.removeTweens(this._notificationWidget);
// JRL changes begin
//this._notificationWidget.y = this.actor.height;
this._notificationWidget.y = -global.screen_height;
// JRL changes end
this._notificationWidget.opacity = 0;
this._notificationState = State.HIDDEN;
this._hideNotificationCompleted();
} else {
this._tween(this._notificationWidget, '_notificationState', State.HIDDEN,
// JRL changes begin
//{ y: this.actor.height,
{ y: -global.screen_height,
// JRL changes end
opacity: 0,
time: ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._hideNotificationCompleted,
onCompleteScope: this
});
}
}
}
else
{
if (this._notificationRemoved) {
// JRL changes begin
// this._notificationWidget.y = this.actor.height;
this._notificationWidget.y = -global.screen_height;
@ -233,13 +268,20 @@ let extensionUpdateShowingNotification = function() {
this._notification._table.add_style_class_name('jrlnotification');
// JRL changes end
this._notification.acknowledged = true;
if (ExtensionUtils.versionCheck(['3.7', '3.8', '3.9', '3.10'], Config.PACKAGE_VERSION)) {
this._notification.playSound();
// We auto-expand notifications with CRITICAL urgency, or for which the relevant setting
// is on in the control center.
if (this._notification.urgency == Urgency.CRITICAL ||
this._notification.source.policy.forceExpanded)
this._expandNotification(true);
}
else
{
// We auto-expand notifications with CRITICAL urgency.
if (this._notification.urgency == Urgency.CRITICAL)
this._expandNotification(true);
}
// We tween all notifications to full opacity. This ensures that both new notifications and
// notifications that might have been in the process of hiding get full opacity.

Loading…
Cancel
Save