Push_modal failure final...

master
xSmurf 7 years ago
parent 9c379123e7
commit c4f2187341

@ -101,7 +101,11 @@ const FirewallPromptHandler = new Lang.Class({
this._dbusImpl.unexport(); this._dbusImpl.unexport();
this._destroyKeybindings(); this._destroyKeybindings();
if (this._promptTimeout !== null) { if (this._promptTimeout !== null) {
try {
GLib.source_remove(this._promptTimeout); GLib.source_remove(this._promptTimeout);
} catch (err) {
//
}
} }
}, },
@ -186,13 +190,15 @@ const FirewallPromptHandler = new Lang.Class({
this._dialog.update(app, icon, path, address, port, ip, origin, uid, gid, user, group, pid, proto, tlsguard, optstring, sandbox, expanded, expert, action); this._dialog.update(app, icon, path, address, port, ip, origin, uid, gid, user, group, pid, proto, tlsguard, optstring, sandbox, expanded, expert, action);
this._dialog.connect("closed", Lang.bind(this, this.onCloseDialog)); this._dialog.connect("closed", Lang.bind(this, this.onCloseDialog));
let fcount = 0; let fcount = 0;
this._promptTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 10, Lang.bind(this, function() { this._promptTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 20, Lang.bind(this, function() {
if (this._dialog.open()) { if (this._dialog.open()) {
this._promptTimeout = null;
return false; return false;
} }
if (fcount++ > 100) { if (fcount++ > 200) {
this._dialog.destroy();
log("SGFW: Failed creating dialog, repeated pushModal failures!"); log("SGFW: Failed creating dialog, repeated pushModal failures!");
this._promptTimeout = null;
this.onCloseDialog();
return false; return false;
} }
return true; return true;

Loading…
Cancel
Save