Make sure an element is focused

Also fix up the docstrings.
This commit is contained in:
Tom Willemse 2013-05-30 21:02:59 +02:00
parent dc842516b0
commit 6e73d17650

View file

@ -86,10 +86,17 @@ function dispass_complete(input, pos, conservative)
} }
} }
function dispass_interactive(I) { function dispass_interactive(with_submit) {
let label = yield I.minibuffer.read($prompt="label:", return function (I) {
$auto_complete=true, if (!I.buffer.focused_element) {
$completer=dispass_complete); I.minibuffer.message("No input selected.");
yield co_return(null);
}
let label = yield I.minibuffer.read(
$prompt="label:", $auto_complete=true,
$completer=dispass_complete
);
I.minibuffer.input_element.type = "password"; I.minibuffer.input_element.type = "password";
let password = yield I.minibuffer.read( let password = yield I.minibuffer.read(
@ -97,14 +104,24 @@ function dispass_interactive(I) {
); );
I.minibuffer.input_element.type = ""; I.minibuffer.input_element.type = "";
I.buffer.focused_element.value = (yield dispass(label, password)); I.buffer.focused_element.value =
(yield dispass(label, password));
if (with_submit)
I.buffer.focused_element.form.submit();
};
} }
interactive("dispass", "Something", dispass_interactive); interactive("dispass",
interactive("dispass-and-submit", "Something", "Call DisPass to generate a passphrase.\n"
function (I) { + "\n"
yield dispass_interactive(I); + "Put the result in the currently focused input.",
I.buffer.focused_element.form.submit(); dispass_interactive(false));
}); interactive("dispass-and-submit",
"Call Dispass to generate a passphrase.\n"
+ "\n"
+ "Put the result in the currently focused input and"
+ " submit the input's form.",
dispass_interactive(true));
provide("cdispass"); provide("cdispass");