automountManager: remove allowAutorun expire timeout on volume removal
If the volume is removed before AUTORUN_EXPIRE_TIMEOUT_SECS seconds, we can stop
the timeout earlier as there's nothing to unset, while the volume instance
won't be valid anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=791233
(cherry picked from commit 9c41736a81
)
This commit is contained in:
parent
176aaa4a97
commit
65d27aaa43
@ -210,6 +210,10 @@ var AutomountManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onVolumeRemoved(monitor, volume) {
|
_onVolumeRemoved(monitor, volume) {
|
||||||
|
if (volume._allowAutorunExpireId && volume._allowAutorunExpireId > 0) {
|
||||||
|
Mainloop.source_remove(volume._allowAutorunExpireId);
|
||||||
|
delete volume._allowAutorunExpireId;
|
||||||
|
}
|
||||||
this._volumeQueue =
|
this._volumeQueue =
|
||||||
this._volumeQueue.filter(element => (element != volume));
|
this._volumeQueue.filter(element => (element != volume));
|
||||||
},
|
},
|
||||||
@ -234,8 +238,10 @@ var AutomountManager = new Lang.Class({
|
|||||||
_allowAutorunExpire(volume) {
|
_allowAutorunExpire(volume) {
|
||||||
let id = Mainloop.timeout_add_seconds(AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
|
let id = Mainloop.timeout_add_seconds(AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
|
||||||
volume.allowAutorun = false;
|
volume.allowAutorun = false;
|
||||||
|
delete volume._allowAutorunExpireId;
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
});
|
});
|
||||||
|
volume._allowAutorunExpireId = id;
|
||||||
GLib.Source.set_name_by_id(id, '[gnome-shell] volume.allowAutorun');
|
GLib.Source.set_name_by_id(id, '[gnome-shell] volume.allowAutorun');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user