3.6 compatibility fixes

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

@ -2,7 +2,7 @@
"uuid": "@uuid@", "uuid": "@uuid@",
"name": "Top Notification", "name": "Top Notification",
"description": "Place shell notifications under the panel instead of above the message-tray", "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@", "localedir": "@LOCALEDIR@",
"url": "@url@" "url": "@url@"
} }

@ -70,10 +70,17 @@ let extensionShowNotification = function () {
this._notification = this._notificationQueue.shift(); this._notification = this._notificationQueue.shift();
this._userActiveWhileNotificationShown = this.idleMonitor.get_idletime() <= IDLE_TIME; this._userActiveWhileNotificationShown = this.idleMonitor.get_idletime() <= IDLE_TIME;
if (!this._userActiveWhileNotificationShown) { if (ExtensionUtils.versionCheck(['3.7', '3.8', '3.9', '3.10'], Config.PACKAGE_VERSION)) {
// If the user isn't active, set up a watch to let us know if (!this._userActiveWhileNotificationShown) {
// when the user becomes active. // If the user isn't active, set up a watch to let us know
this.idleMonitor.add_user_active_watch(Lang.bind(this, this._onIdleMonitorBecameActive)); // 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', this._notificationClickedId = this._notification.connect('done-displaying',
@ -142,58 +149,86 @@ let extensionHideNotification = function(animate) {
this._notification.disconnect(this._notificationExpandedId); this._notification.disconnect(this._notificationExpandedId);
this._notificationExpandedId = 0; this._notificationExpandedId = 0;
} }
if (this._notificationClickedId) { if (ExtensionUtils.versionCheck(['3.7', '3.8', '3.9', '3.10'], Config.PACKAGE_VERSION)) {
this._notification.disconnect(this._notificationClickedId); if (this._notificationClickedId) {
this._notificationClickedId = 0; this._notification.disconnect(this._notificationClickedId);
} this._notificationClickedId = 0;
if (this._notificationUnfocusedId) { }
this._notification.disconnect(this._notificationUnfocusedId); if (this._notificationUnfocusedId) {
this._notificationUnfocusedId = 0; this._notification.disconnect(this._notificationUnfocusedId);
} this._notificationUnfocusedId = 0;
if (ExtensionUtils.versionCheck(['3.9', '3.10'], Config.PACKAGE_VERSION)) {
if (this._notificationLeftTimeoutId) {
Mainloop.source_remove(this._notificationLeftTimeoutId);
this._notificationLeftTimeoutId = 0;
this._notificationLeftMouseX = -1;
this._notificationLeftMouseY = -1;
} }
if (animate) { if (ExtensionUtils.versionCheck(['3.9', '3.10'], Config.PACKAGE_VERSION)) {
this._tween(this._notificationWidget, '_notificationState', State.HIDDEN, if (this._notificationLeftTimeoutId) {
// JRL changes begin Mainloop.source_remove(this._notificationLeftTimeoutId);
// { y: this.actor.height, this._notificationLeftTimeoutId = 0;
{ y: -global.screen_height, this._notificationLeftMouseX = -1;
// JRL changes end this._notificationLeftMouseY = -1;
opacity: 0, }
time: ANIMATION_TIME,
transition: 'easeOutQuad', if (animate) {
onComplete: this._hideNotificationCompleted, this._tween(this._notificationWidget, '_notificationState', State.HIDDEN,
onCompleteScope: this // JRL changes begin
}); //{ y: this.actor.height,
} else { { y: -global.screen_height,
Tweener.removeTweens(this._notificationWidget); // JRL changes end
// JRL changes begin opacity: 0,
// this._notificationWidget.y = this.actor.height; time: ANIMATION_TIME,
this._notificationWidget.y = -global.screen_height; transition: 'easeOutQuad',
// JRL changes end onComplete: this._hideNotificationCompleted,
this._notificationWidget.opacity = 0; onCompleteScope: this
this._notificationState = State.HIDDEN; });
this._hideNotificationCompleted(); } else {
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._useLongerTrayLeftTimeout = false;
if (this._trayLeftTimeoutId) {
Mainloop.source_remove(this._trayLeftTimeoutId);
this._trayLeftTimeoutId = 0;
this._trayLeftMouseX = -1;
this._trayLeftMouseY = -1;
}
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 else
{ {
this._useLongerTrayLeftTimeout = false;
if (this._trayLeftTimeoutId) {
Mainloop.source_remove(this._trayLeftTimeoutId);
this._trayLeftTimeoutId = 0;
this._trayLeftMouseX = -1;
this._trayLeftMouseY = -1;
}
if (this._notificationRemoved) { if (this._notificationRemoved) {
Tweener.removeTweens(this._notificationWidget);
// JRL changes begin // JRL changes begin
// this._notificationWidget.y = this.actor.height; // this._notificationWidget.y = this.actor.height;
this._notificationWidget.y = -global.screen_height; this._notificationWidget.y = -global.screen_height;
@ -233,13 +268,20 @@ let extensionUpdateShowingNotification = function() {
this._notification._table.add_style_class_name('jrlnotification'); this._notification._table.add_style_class_name('jrlnotification');
// JRL changes end // JRL changes end
this._notification.acknowledged = true; this._notification.acknowledged = true;
this._notification.playSound(); 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 // We auto-expand notifications with CRITICAL urgency, or for which the relevant setting
// is on in the control center. // is on in the control center.
if (this._notification.urgency == Urgency.CRITICAL || if (this._notification.urgency == Urgency.CRITICAL ||
this._notification.source.policy.forceExpanded) this._notification.source.policy.forceExpanded)
this._expandNotification(true); 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 // 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. // notifications that might have been in the process of hiding get full opacity.

Loading…
Cancel
Save