fix focus on alerts, prompts, and confirms. call back from alerts

pull/1/head
ansuz 7 years ago
parent a74915ab58
commit a0b3201df3

@ -36,8 +36,9 @@ define([
return $('button.ok').last();
};
var listenForKeys = UI.listenForKeys = function (yes, no) {
var listenForKeys = UI.listenForKeys = function (yes, no, el) {
var handler = function (e) {
e.stopPropagation();
switch (e.which) {
case 27: // cancel
if (typeof(no) === 'function') { no(e); }
@ -48,7 +49,7 @@ define([
}
};
$(window).keyup(handler);
$(el || window).keydown(handler);
return handler;
};
@ -114,7 +115,9 @@ define([
};
dialog.frame = function (content) {
return h('div.alertify', [
return h('div.alertify', {
tabindex: 1,
}, [
h('div.dialog', [
h('div', content),
])
@ -229,6 +232,7 @@ define([
var close = Util.once(function () {
$(frame).fadeOut(150, function () { $(this).remove(); });
stopListening(listener);
cb();
});
listener = listenForKeys(close, close);
var $ok = $(ok).click(close);
@ -237,7 +241,6 @@ define([
setTimeout(function () {
$ok.focus();
UI.notify();
if (!document.hasFocus()) { window.focus(); }
});
};
@ -283,7 +286,6 @@ define([
setTimeout(function () {
input.select().focus();
UI.notify();
if (!document.hasFocus()) { window.focus(); }
});
};
@ -330,10 +332,10 @@ define([
document.body.appendChild(frame);
setTimeout(function () {
UI.notify();
$(frame).find('.ok').focus();
if (typeof(opt.done) === 'function') {
opt.done($ok.closest('.dialog'));
}
if (!document.hasFocus()) { window.focus(); }
});
};

Loading…
Cancel
Save