inhibitShortcutsDialog: Don't override resource
PermissionStore's Set() method takes a complete permission table, so when setting an app's permission, we are implicitly removing all previously set entries for other apps. Switch to the SetPermission() method which sets the permission for a single app. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5937 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2504>
This commit is contained in:
parent
0ce2bc343b
commit
8590e33501
@ -13,6 +13,13 @@
|
|||||||
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
||||||
<arg name="data" type="v" direction="in"/>
|
<arg name="data" type="v" direction="in"/>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="SetPermission">
|
||||||
|
<arg name='table' type='s' direction='in'/>
|
||||||
|
<arg name='create' type='b' direction='in'/>
|
||||||
|
<arg name='id' type='s' direction='in'/>
|
||||||
|
<arg name='app' type='s' direction='in'/>
|
||||||
|
<arg name='permissions' type='as' direction='in'/>
|
||||||
|
</method>
|
||||||
<signal name="Changed">
|
<signal name="Changed">
|
||||||
<arg name="table" type="s" direction="out"/>
|
<arg name="table" type="s" direction="out"/>
|
||||||
<arg name="id" type="s" direction="out"/>
|
<arg name="id" type="s" direction="out"/>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* exported InhibitShortcutsDialog */
|
/* exported InhibitShortcutsDialog */
|
||||||
const { Clutter, Gio, GLib, GObject, Gtk, Meta, Pango, Shell, St } = imports.gi;
|
const {Clutter, Gio, GObject, Gtk, Meta, Pango, Shell, St} = imports.gi;
|
||||||
|
|
||||||
const Dialog = imports.ui.dialog;
|
const Dialog = imports.ui.dialog;
|
||||||
const ModalDialog = imports.ui.modalDialog;
|
const ModalDialog = imports.ui.modalDialog;
|
||||||
@ -57,16 +57,12 @@ var InhibitShortcutsDialog = GObject.registerClass({
|
|||||||
if (!this._shouldUsePermStore() || this._permStore == null)
|
if (!this._shouldUsePermStore() || this._permStore == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let permissions = {};
|
|
||||||
permissions[this._app.get_id()] = [grant];
|
|
||||||
let data = GLib.Variant.new('av', {});
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this._permStore.SetAsync(APP_PERMISSIONS_TABLE,
|
await this._permStore.SetPermissionAsync(APP_PERMISSIONS_TABLE,
|
||||||
true,
|
true,
|
||||||
APP_PERMISSIONS_ID,
|
APP_PERMISSIONS_ID,
|
||||||
permissions,
|
this._app.get_id(),
|
||||||
data);
|
[grant]);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log(error.message);
|
log(error.message);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user