mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
messageTray: Inherit Notification, Source and NotificationPolicy from GObject
Register notifications, sources and policies as GObject gtypes so that they can be passed in signals and use native properties and signals. Reimplement all the extending classes. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559
This commit is contained in:
parent
7059dcced3
commit
b5676a2a5c
13 changed files with 211 additions and 131 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
/* exported Component */
|
||||
|
||||
const { Gio, St } = imports.gi;
|
||||
const { Gio, GObject, St } = imports.gi;
|
||||
|
||||
const GnomeSession = imports.misc.gnomeSession;
|
||||
const Main = imports.ui.main;
|
||||
|
|
@ -272,9 +272,10 @@ var AutorunDispatcher = class {
|
|||
}
|
||||
};
|
||||
|
||||
var AutorunSource = class extends MessageTray.Source {
|
||||
constructor(manager, mount, apps) {
|
||||
super(mount.get_name());
|
||||
var AutorunSource = GObject.registerClass(
|
||||
class AutorunSource extends MessageTray.Source {
|
||||
_init(manager, mount, apps) {
|
||||
super._init(mount.get_name());
|
||||
|
||||
this._manager = manager;
|
||||
this.mount = mount;
|
||||
|
|
@ -284,7 +285,7 @@ var AutorunSource = class extends MessageTray.Source {
|
|||
|
||||
// add ourselves as a source, and popup the notification
|
||||
Main.messageTray.add(this);
|
||||
this.notify(this._notification);
|
||||
this.showNotification(this._notification);
|
||||
}
|
||||
|
||||
getIcon() {
|
||||
|
|
@ -294,11 +295,12 @@ var AutorunSource = class extends MessageTray.Source {
|
|||
_createPolicy() {
|
||||
return new MessageTray.NotificationApplicationPolicy('org.gnome.Nautilus');
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
var AutorunNotification = class extends MessageTray.Notification {
|
||||
constructor(manager, source) {
|
||||
super(source, source.title);
|
||||
var AutorunNotification = GObject.registerClass(
|
||||
class AutorunNotification extends MessageTray.Notification {
|
||||
_init(manager, source) {
|
||||
super._init(source, source.title);
|
||||
|
||||
this._manager = manager;
|
||||
this._mount = source.mount;
|
||||
|
|
@ -350,6 +352,6 @@ var AutorunNotification = class extends MessageTray.Notification {
|
|||
let app = Gio.app_info_get_default_for_type('inode/directory', false);
|
||||
startAppForMount(app, this._mount);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
var Component = AutorunManager;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue