diff --git a/web/source/keymanweb.ts b/web/source/keymanweb.ts
index 4c5d793d7b..bb5783815d 100644
--- a/web/source/keymanweb.ts
+++ b/web/source/keymanweb.ts
@@ -107,15 +107,6 @@ if(!window['keyman']['initialized']) {
keymanweb.delayedInit();
- // I732 START - Support for European underlying keyboards #1
- if(typeof(window['KeymanWeb_BaseLayout']) !== 'undefined')
- com.keyman.osk.Layouts._BaseLayout = window['KeymanWeb_BaseLayout'];
- else
- com.keyman.osk.Layouts._BaseLayout = 'us';
-
-
- keymanweb._BrowserIsSafari = (navigator.userAgent.indexOf('AppleWebKit') >= 0); // I732 END - Support for European underlying keyboards #1
-
//TODO: find all references to next three routines and disambiguate!!
// Complete page initialization only after the page is fully loaded, including any embedded fonts
diff --git a/web/source/kmwbase.ts b/web/source/kmwbase.ts
index 6d4e9c0a4c..71632a5fe1 100644
--- a/web/source/kmwbase.ts
+++ b/web/source/kmwbase.ts
@@ -16,8 +16,6 @@
///
// Defines keyboard data & management classes.
///
-// Defines built-in keymapping.
-///
// Defines KMW's hotkey management object.
///
// Defines the ui management code that tracks UI activation and such.
@@ -55,7 +53,8 @@ namespace com.keyman {
initialized: number; // Signals the initialization state of the KeymanWeb system.
isHeadless = false; // Indicates that KMW lacks any access to the DOM. Nothing yet implemented for '= true'.
- 'build' = 300; // TS needs this to be defined within the class.
+ 'build' = 300; // TS needs this to be defined within the class.
+ _BrowserIsSafari: boolean; // A legacy browser-check variable.
// Used as placeholders during initialization.
// The corresponding class properties should be dropped after a refactor;
@@ -72,7 +71,6 @@ namespace com.keyman {
domManager: DOMManager;
hotkeyManager: HotkeyManager;
uiManager: UIManager;
- keyMapManager: KeyMapManager;
textProcessor: text.Processor;
modelManager: text.prediction.ModelManager;
@@ -118,8 +116,17 @@ namespace com.keyman {
this.domManager = new DOMManager(this);
this.hotkeyManager = new HotkeyManager(this);
this.uiManager = new UIManager(this);
- this.keyMapManager = new KeyMapManager();
- this.textProcessor = new text.Processor();
+
+ // I732 START - Support for European underlying keyboards #1
+ var baseLayout: string;
+ if(typeof(window['KeymanWeb_BaseLayout']) !== 'undefined') {
+ baseLayout = window['KeymanWeb_BaseLayout'];
+ } else {
+ baseLayout = 'us';
+ }
+ this._BrowserIsSafari = (navigator.userAgent.indexOf('AppleWebKit') >= 0); // I732 END - Support for European underlying keyboards #1
+
+ this.textProcessor = new text.Processor(baseLayout);
// Used by the embedded apps.
this['interface'] = this.textProcessor.keyboardInterface;
diff --git a/web/source/osk/defaultLayouts.ts b/web/source/osk/defaultLayouts.ts
index 5c24fd7654..4880de8e2e 100644
--- a/web/source/osk/defaultLayouts.ts
+++ b/web/source/osk/defaultLayouts.ts
@@ -101,12 +101,6 @@ namespace com.keyman.osk {
'leftctrl-shift': '*LCtrlShift*',
'rightctrl-shift': '*RCtrlShift*'
};
-
- static _BaseLayout: string = 'us'; // default BaseLayout
- static _BaseLayoutEuro: {[code: string]: string} = {
- 'se': '\u00a71234567890+´~~~QWERTYUIOP\u00c5\u00a8\'~~~ASDFGHJKL\u00d6\u00c4~~~~~
// Defines the keyboard wrapper object.
///
+// Defines built-in keymapping.
+///
namespace com.keyman.text {
export class LegacyKeyEvent {
@@ -35,9 +37,12 @@ namespace com.keyman.text {
swallowKeypress: boolean = false;
keyboardInterface: KeyboardInterface;
+
+ baseLayout: string;
private keyboard: keyboards.Keyboard;
- constructor() {
+ constructor(baseLayout?: string) {
+ this.baseLayout = baseLayout || 'us'; // default BaseLayout
this.keyboardInterface = new KeyboardInterface();
this.installInterface();
}
@@ -225,7 +230,7 @@ namespace com.keyman.text {
// Support version 1.0 KeymanWeb keyboards that do not define positional vs mnemonic
if(!activeKeyboard.definesPositionalOrMnemonic) {
- Lkc.Lcode=keyman.keyMapManager._USKeyCodeToCharCode(Lkc);
+ Lkc.Lcode = KeyMapping._USKeyCodeToCharCode(Lkc);
Lkc.LisVirtualKey=false;
}
@@ -263,13 +268,12 @@ namespace com.keyman.text {
processKeystroke(keyEvent: KeyEvent, outputTarget: OutputTarget, fromOSK: boolean): RuleBehavior {
let keyman = com.keyman.singleton;
- let keyMapManager = keyman.keyMapManager;
if(!keyman.isEmbedded && !fromOSK && keyman.util.device.browser == 'firefox') {
// I1466 - Convert the - keycode on mnemonic as well as positional layouts
// FireFox, Mozilla Suite
- if(keyMapManager.browserMap.FF['k'+keyEvent.Lcode]) {
- keyEvent.Lcode=keyMapManager.browserMap.FF['k'+keyEvent.Lcode];
+ if(KeyMapping.browserMap.FF['k'+keyEvent.Lcode]) {
+ keyEvent.Lcode=KeyMapping.browserMap.FF['k'+keyEvent.Lcode];
}
}
@@ -318,6 +322,7 @@ namespace com.keyman.text {
*/
processKeyEvent(keyEvent: KeyEvent, e?: osk.KeyElement | boolean): boolean {
let keyman = com.keyman.singleton;
+ let formFactor = keyman.util.device.formFactor;
// Determine the current target for text output and create a "mock" backup
// of its current, pre-input state.
@@ -330,9 +335,6 @@ namespace com.keyman.text {
e = null as osk.KeyElement; // Cast is necessary for TS type-checking later in the method.
}
- let formFactor = keyman.util.device.formFactor;
- let keyMapManager = keyman.keyMapManager;
-
this.swallowKeypress = false;
if(fromOSK && !keyman.isEmbedded) {
@@ -367,8 +369,8 @@ namespace com.keyman.text {
if(!keyman.isEmbedded && !fromOSK && keyman.util.device.browser == 'firefox') {
// I1466 - Convert the - keycode on mnemonic as well as positional layouts
// FireFox, Mozilla Suite
- if(keyMapManager.browserMap.FF['k'+keyEvent.Lcode]) {
- keyEvent.Lcode=keyMapManager.browserMap.FF['k'+keyEvent.Lcode];
+ if(KeyMapping.browserMap.FF['k'+keyEvent.Lcode]) {
+ keyEvent.Lcode = KeyMapping.browserMap.FF['k'+keyEvent.Lcode];
}
} //else
//{
@@ -1140,14 +1142,12 @@ namespace com.keyman.text {
var LisVirtualKeyCode = (typeof e.charCode != 'undefined' && e.charCode != null && (e.charCode == 0 || (s.Lmodifiers & 0x6F) != 0));
s.LisVirtualKey = LisVirtualKeyCode || e.type != 'keypress';
- let keyMapManager = keyman.keyMapManager;
-
// Other minor physical-keyboard adjustments
if(activeKeyboard && !activeKeyboard.isMnemonic) {
// Positional Layout
/* 13/03/2007 MCD: Swedish: Start mapping of keystroke to US keyboard */
- var Lbase=keyMapManager.languageMap[com.keyman.osk.Layouts._BaseLayout];
+ var Lbase = KeyMapping.languageMap[this.baseLayout];
if(Lbase && Lbase['k'+s.Lcode]) {
s.Lcode=Lbase['k'+s.Lcode];
}
@@ -1156,7 +1156,7 @@ namespace com.keyman.text {
if(!activeKeyboard.definesPositionalOrMnemonic && !(s.Lmodifiers & 0x60)) {
// Support version 1.0 KeymanWeb keyboards that do not define positional vs mnemonic
s = {
- Lcode: keyMapManager._USKeyCodeToCharCode(s),
+ Lcode: KeyMapping._USKeyCodeToCharCode(s),
Ltarg: s.Ltarg,
Lmodifiers: 0,
LisVirtualKey: false,