diff --git a/js/misc/dbusErrors.js b/js/misc/dbusErrors.js index 5e4d62e2c..f59add314 100644 --- a/js/misc/dbusErrors.js +++ b/js/misc/dbusErrors.js @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import GLib from 'gi://GLib'; import Gio from 'gi://Gio'; @@ -27,3 +26,11 @@ function createErrorEnum(errorNames) { } return obj; } + +const modalDialogErrorNames = [ + 'UnknownType', + 'GrabFailed', +]; +export const ModalDialogErrors = + registerErrorDomain('ModalDialog', modalDialogErrorNames); +export const ModalDialogError = createErrorEnum(modalDialogErrorNames); diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index d133c38c0..6f5aadd7c 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -34,6 +34,8 @@ import * as LoginManager from '../misc/loginManager.js'; import * as ModalDialog from './modalDialog.js'; import * as UserWidget from './userWidget.js'; +import {ModalDialogErrors, ModalDialogError} from '../misc/dbusErrors.js'; + import {loadInterfaceXML} from '../misc/fileUtils.js'; const _ITEM_ICON_SIZE = 64; @@ -739,8 +741,8 @@ class EndSessionDialog extends ModalDialog.ModalDialog { this._sessionSection.list.destroy_all_children(); if (!(this._type in DialogContent)) { - invocation.return_dbus_error( - 'org.gnome.Shell.ModalDialog.TypeError', + invocation.return_error_literal(ModalDialogErrors, + ModalDialogError.UNKNOWN_TYPE, 'Unknown dialog type requested'); return; } @@ -773,8 +775,8 @@ class EndSessionDialog extends ModalDialog.ModalDialog { this._updateButtons(); if (!this.open(timestamp)) { - invocation.return_dbus_error( - 'org.gnome.Shell.ModalDialog.GrabError', + invocation.return_error_literal( + ModalDialogError.GRAB_FAILED, 'Cannot grab pointer and keyboard'); return; }