endSessionDialog: Fix inhibitor list
gnome-session moved away from using properties over DBus in 2008, which means that the code in GNOME 3.0 never should have worked -- but it did, which makes me suspect that it was a quirk of the GJS DBus implementation. Switch over to the proper inhibitor API, which is based on methods. If gnome-session eventually gets ported to GDBus, then we can switch back to properties. https://bugzilla.gnome.org/show_bug.cgi?id=672270
This commit is contained in:
@ -116,10 +116,10 @@ const DialogContent = {
|
||||
};
|
||||
|
||||
function findAppFromInhibitor(inhibitor) {
|
||||
let desktopFile = inhibitor.app_id;
|
||||
let [desktopFile] = inhibitor.GetAppIdSync();
|
||||
|
||||
if (!GLib.str_has_suffix(desktopFile, '.desktop'))
|
||||
desktopFile += '.desktop';
|
||||
desktopFile += '.desktop';
|
||||
|
||||
let candidateDesktopFiles = [];
|
||||
|
||||
@ -482,7 +482,8 @@ const EndSessionDialog = new Lang.Class({
|
||||
let app = findAppFromInhibitor(inhibitor);
|
||||
|
||||
if (app) {
|
||||
let item = new ListItem(app, inhibitor.reason);
|
||||
let [reason] = inhibitor.GetReasonSync();
|
||||
let item = new ListItem(app, reason);
|
||||
item.connect('activate',
|
||||
Lang.bind(this, function() {
|
||||
this.close(global.get_current_time());
|
||||
|
Reference in New Issue
Block a user