Bug 1735458 - Do not show mail notification on Windows if running fullscreen app. r=mkmelin
Differential Revision: https://phabricator.services.mozilla.com/D128427 --HG-- extra : amend_source : db4b4e7c3baca7329e40eb02ac9918d1961baaf4
This commit is contained in:
Родитель
df19d1a041
Коммит
c2be3c081e
|
@ -13,4 +13,7 @@ interface nsIMessengerWindowsIntegration : nsIMessengerOSIntegration {
|
|||
void hideWindow(in nsIBaseWindow aWindow);
|
||||
|
||||
void showWindow(in mozIDOMWindowProxy aWindow);
|
||||
|
||||
/** Do not show notifications in some states, e.g. when running a fullscreen app. */
|
||||
readonly attribute boolean suppressNotification;
|
||||
};
|
||||
|
|
|
@ -77,6 +77,7 @@ class MailNotificationManager {
|
|||
if (AppConstants.platform == "win") {
|
||||
Services.obs.addObserver(this, "windows-refresh-badge-tray");
|
||||
Services.prefs.addObserver("mail.biff.show_badge", this);
|
||||
this._osIntegration.QueryInterface(Ci.nsIMessengerWindowsIntegration);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,6 +134,12 @@ class MailNotificationManager {
|
|||
if (!Services.prefs.getBoolPref("mail.biff.show_alert")) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
AppConstants.platform == "win" &&
|
||||
this._osIntegration.suppressNotification
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._logger.debug(
|
||||
`onFolderIntPropertyChanged; property=${property}: ${oldValue} => ${newValue}, folder.URI=${folder.URI}`
|
||||
|
@ -166,7 +173,7 @@ class MailNotificationManager {
|
|||
}
|
||||
|
||||
/**
|
||||
* Show an alert according the changed folder.
|
||||
* Show an alert according to the changed folder.
|
||||
* @param {nsIMsgFolder} changedFolder - The folder that emitted the change
|
||||
* event, can be a root folder or a real folder.
|
||||
*/
|
||||
|
|
|
@ -226,6 +226,17 @@ nsMessengerWinIntegration::ShowWindow(mozIDOMWindowProxy* aWindow) {
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMessengerWinIntegration::GetSuppressNotification(bool* suppressNotification) {
|
||||
*suppressNotification = false;
|
||||
QUERY_USER_NOTIFICATION_STATE qstate;
|
||||
if (SUCCEEDED(SHQueryUserNotificationState(&qstate)) &&
|
||||
qstate != QUNS_ACCEPTS_NOTIFICATIONS) {
|
||||
*suppressNotification = true;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMessengerWinIntegration::UpdateUnreadCount(uint32_t unreadCount,
|
||||
const nsAString& unreadTooltip) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче