Mottie / Keyboard

Virtual Keyboard using jQuery ~

Home Page:http://mottie.github.io/Keyboard/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keyboard steals focus on initialization

downace opened this issue · comments

JSFiddle: https://jsfiddle.net/6gd3y71u/24/

I have two inputs: one with the virtual keyboard, another one with autofocus.

When keyboard initializes, it steals focus from the second input.

Currently I'm using following monkey-patch to workaround this issue:

require('virtual-keyboard/dist/js/jquery.keyboard.js');

const original_checkCaretSupport = $.keyboard.checkCaretSupport;
$.keyboard.checkCaretSupport = function() {
    const focused = document.activeElement;
    original_checkCaretSupport();
    if (focused && document.activeElement !== focused && focused.focus) {
        focused.focus();
    }
};

Hi @downace!

Please use the initialFocus option to prevent the problem you're describing.

Hi!

Thanks for the response.

I've checked the initialFocus option as you suggested, it's not fixing the problem (tested on the JSFiddle I've provided in this issue).

As far as I can tell, this is not related to the normal keyboard focus.

I've used the Chrome debugger and found out that focus is lost inside $keyboard.caret method. Here is a part of the stack trace:

$keyboard.caret (jquery.keyboard.js#L3191)
$keyboard.checkCaretSupport (jquery.keyboard.js#L3175)
base.init (jquery.keyboard.js#L131)
$.keyboard (jquery.keyboard.js#L2461)
(anonymous) (jquery.keyboard.js#L3484)

Please test v1.30.4 to see if it resolves your issue. Thanks!