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', () => { electron.app.on('before-quit', () => {
appQuitting = true; 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; 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 // Notifications in Electron use the HTML5 notification API
const notification = new global.Notification( const notification = new global.Notification(
title, title,
@ -97,6 +97,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
room_id: room.roomId room_id: room.roomId
}); });
global.focus(); global.focus();
electron.remote.getCurrentWindow().restore();
}; };
return notification; return notification;

View file

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