Fix clicking on notifications

* Dismiss the notification when it's clicked
 * Accept the room object: we need it to view_room
 * Desktop app: Un-minimise when notification clicked
 * Desktop App: Set App User Model ID so notifications work on
   Windows 8!
This commit is contained in:
David Baker 2016-12-06 13:28:59 +00:00
parent b825862f95
commit 5fa0f62ccc
3 changed files with 10 additions and 2 deletions

View file

@ -202,3 +202,9 @@ electron.app.on('activate', () => {
electron.app.on('before-quit', () => {
appQuitting = true;
});
// Set the App User Model ID to match what the squirrel
// installer uses for the shortcut icon.
// This makes notifications work on windows 8.1 (and is
// a noop on other platforms).
electron.app.setAppUserModelId('com.squirrel.riot-web.Riot');

View file

@ -79,7 +79,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
return true;
}
displayNotification(title: string, msg: string, avatarUrl: string): Notification {
displayNotification(title: string, msg: string, avatarUrl: string, room: Object): Notification {
// Notifications in Electron use the HTML5 notification API
const notification = new global.Notification(
title,
@ -97,6 +97,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
room_id: room.roomId
});
global.focus();
electron.remote.getCurrentWindow().restore();
};
return notification;

View file

@ -103,7 +103,7 @@ export default class WebPlatform extends VectorBasePlatform {
return defer.promise;
}
displayNotification(title: string, msg: string, avatarUrl: string) {
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
const notification = new global.Notification(
title,
{
@ -120,6 +120,7 @@ export default class WebPlatform extends VectorBasePlatform {
room_id: room.roomId
});
global.focus();
notification.close();
};
// Chrome only dismisses notifications after 20s, which