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) {
let label = yield I.minibuffer.read($prompt="label:",
$auto_complete=true,
$completer=dispass_complete);
function dispass_interactive(with_submit) {
return function (I) {
if (!I.buffer.focused_element) {
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";
let password = yield I.minibuffer.read(
@ -97,14 +104,24 @@ function dispass_interactive(I) {
);
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-and-submit", "Something",
function (I) {
yield dispass_interactive(I);
I.buffer.focused_element.form.submit();
});
interactive("dispass",
"Call DisPass to generate a passphrase.\n"
+ "\n"
+ "Put the result in the currently focused input.",
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");