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,