mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-06 07:37:40 +00:00
Corrects issue #110 - fixes the embedded control path for hardware keyboard input and adds a layer of protection to prevent future touchable-mode breakage.
This commit is contained in:
parent
f7e47bb5c1
commit
7af8b93cf8
1 changed files with 17 additions and 13 deletions
|
|
@ -454,18 +454,22 @@
|
|||
* @param {number} code key identifier
|
||||
* @param {number} shift shift state (0x10=shift 0x20=ctrl 0x40=alt)
|
||||
**/
|
||||
keymanweb['executeHardwareKeystroke'] = function(code, shift)
|
||||
{
|
||||
if(!keymanweb._ActiveKeyboard || code == 0) {
|
||||
return false;
|
||||
}
|
||||
var cachedTouchable = device.touchable, cachedFormFactor = device.formFactor;
|
||||
device.touchable = false;
|
||||
device.formFactor = 'desktop';
|
||||
var result = keymanweb.executeHardwareKeystrokeInternal(code, shift);
|
||||
device.touchable = cachedTouchable;
|
||||
device.formFactor = cachedFormFactor;
|
||||
return result;
|
||||
keymanweb['executeHardwareKeystroke'] = function(code, shift) {
|
||||
if(!keymanweb._ActiveKeyboard || code == 0) {
|
||||
return false;
|
||||
}
|
||||
var cachedTouchable = device.touchable, cachedFormFactor = device.formFactor;
|
||||
var result = false; // Signals if we successfully handled the keystroke.
|
||||
device.touchable = false;
|
||||
device.formFactor = 'desktop';
|
||||
try {
|
||||
result = keymanweb.executeHardwareKeystrokeInternal(code, shift);
|
||||
} catch (err) {
|
||||
console.error(err.message, err);
|
||||
}
|
||||
device.touchable = cachedTouchable;
|
||||
device.formFactor = cachedFormFactor;
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -510,7 +514,7 @@
|
|||
keymanweb.KO(0, Lelem, '\n');
|
||||
return true;
|
||||
}
|
||||
var ch = osk.defaultKeyOutput('', Lkc.Lcode, shift);
|
||||
var ch = osk.defaultKeyOutput('', Lkc.Lcode, shift / 0x10);
|
||||
if(ch) {
|
||||
keymanweb.KO(0, Lelem, ch);
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue