mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 882858 - Add a "showing" notification to PopupNotifications, r=jaws sr=gavin
This commit is contained in:
parent
29141b1f48
commit
6bbae2d113
@ -137,6 +137,9 @@ function basicNotification() {
|
||||
case "dismissed":
|
||||
self.dismissalCallbackTriggered = true;
|
||||
break;
|
||||
case "showing":
|
||||
self.showingCallbackTriggered = true;
|
||||
break;
|
||||
case "shown":
|
||||
self.shownCallbackTriggered = true;
|
||||
break;
|
||||
@ -858,6 +861,27 @@ var tests = [
|
||||
this.notification1.remove();
|
||||
this.notification2.remove();
|
||||
}
|
||||
},
|
||||
{ // Test #30 - Showing should be able to modify the popup data
|
||||
run: function() {
|
||||
this.notifyObj = new basicNotification();
|
||||
var normalCallback = this.notifyObj.options.eventCallback;
|
||||
this.notifyObj.options.eventCallback = function (eventName) {
|
||||
if (eventName == "showing") {
|
||||
this.mainAction.label = "Alternate Label";
|
||||
}
|
||||
normalCallback.call(this, eventName);
|
||||
};
|
||||
showNotification(this.notifyObj);
|
||||
},
|
||||
onShown: function(popup) {
|
||||
// checkPopup checks for the matching label. Note that this assumes that
|
||||
// this.notifyObj.mainAction is the same as notification.mainAction,
|
||||
// which could be a problem if we ever decided to deep-copy.
|
||||
checkPopup(popup, this.notifyObj);
|
||||
triggerMainCommand(popup);
|
||||
},
|
||||
onHidden: function() { }
|
||||
}
|
||||
];
|
||||
|
||||
@ -874,6 +898,7 @@ function showNotification(notifyObj) {
|
||||
function checkPopup(popup, notificationObj) {
|
||||
info("[Test #" + gTestIndex + "] checking popup");
|
||||
|
||||
ok(notificationObj.showingCallbackTriggered, "showing callback was triggered");
|
||||
ok(notificationObj.shownCallbackTriggered, "shown callback was triggered");
|
||||
|
||||
let notifications = popup.childNodes;
|
||||
|
@ -10,6 +10,7 @@ Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
const NOTIFICATION_EVENT_DISMISSED = "dismissed";
|
||||
const NOTIFICATION_EVENT_REMOVED = "removed";
|
||||
const NOTIFICATION_EVENT_SHOWING = "showing";
|
||||
const NOTIFICATION_EVENT_SHOWN = "shown";
|
||||
|
||||
const ICON_SELECTOR = ".notification-anchor-icon";
|
||||
@ -521,6 +522,9 @@ PopupNotifications.prototype = {
|
||||
_showPanel: function PopupNotifications_showPanel(notificationsToShow, anchorElement) {
|
||||
this.panel.hidden = false;
|
||||
|
||||
notificationsToShow.forEach(function (n) {
|
||||
this._fireCallback(n, NOTIFICATION_EVENT_SHOWING);
|
||||
}, this);
|
||||
this._refreshPanel(notificationsToShow);
|
||||
|
||||
if (this.isPanelOpen && this._currentAnchorElement == anchorElement)
|
||||
|
Loading…
Reference in New Issue
Block a user