Merge pull request #1057 from keepassxreboot/fix/fill_from_keyboard_without_focus

Fix filling from keyboard without input field focus
This commit is contained in:
Sami Vänttinen 2020-10-22 14:03:43 +03:00 committed by GitHub
commit 45834d610c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -705,8 +705,23 @@ kpxc.detectDatabaseChange = async function(response) {
// Fill requested from the context menu. Active element is used for combination detection
kpxc.fillInFromActiveElement = async function(passOnly = false) {
if (kpxc.credentials.length === 0) {
return;
}
const el = document.activeElement;
if (el.nodeName !== 'INPUT' || kpxc.credentials.length === 0) {
if (el.nodeName !== 'INPUT') {
// No active input element selected -> fill the first combination found
if (kpxc.combinations.length > 0) {
kpxc.fillInCredentials(kpxc.combinations[0], kpxc.credentials[0].login, kpxc.credentials[0].uuid, passOnly);
// Focus to the input field
const field = passOnly ? kpxc.combinations[0].password : kpxc.combinations[0].username;
if (field) {
field.focus();
}
}
return;
} else if (kpxc.credentials.length > 1 && kpxc.combinations.length > 0 && kpxc.settings.autoCompleteUsernames) {
kpxcAutocomplete.showList(el);