diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-03-25 15:22:28 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-03-25 15:22:28 -0700 | 
| commit | 90eaae1725511bbc039f84f684b7b080e0fa2d44 (patch) | |
| tree | e7a5a783dc9e94ac7d1d2bb2471d093df9b5b95b | |
| parent | 4a232151e065400495ec2ed0ca57dff8da84c4b7 (diff) | |
wip
| -rw-r--r-- | ext/fg/js/driver.js | 22 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 16 | 
2 files changed, 38 insertions, 0 deletions
| diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js index 16b12d5e..5e17537e 100644 --- a/ext/fg/js/driver.js +++ b/ext/fg/js/driver.js @@ -35,6 +35,7 @@ window.driver = new class {              window.addEventListener('mouseup', this.onMouseUp.bind(this));              window.addEventListener('mousemove', this.onMouseMove.bind(this));              window.addEventListener('resize', e => this.searchClear()); +            window.addEventListener('message', this.onFrameMessage.bind(this));              chrome.runtime.onMessage.addListener(this.onBgMessage.bind(this));          }).catch(this.handleError.bind(this));      } @@ -101,6 +102,27 @@ window.driver = new class {          }      } +    onFrameMessage(e) { +        const handlers = { +            popupClose: () => { +                this.searchClear(); +            }, + +            scanLeft: () => { + +            }, + +            scanRight: () => { + +            } +        }; + +        const handler = handlers[e.data]; +        if (handler) { +            handler(); +        } +    } +      onBgMessage({action, params}, sender, callback) {          const handlers = new class {              api_optionsSet(options) { diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index f3423878..30f703bb 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -207,6 +207,10 @@ class Display {      }      onKeyDown(e) { +        const notifyParent = action => { +            window.parent.postMessage(action, '*'); +        }; +          const handlers = {              36: /* home */ () => {                  this.entryScroll(0, true); @@ -246,6 +250,18 @@ class Display {              8: /* backspace */ () => { +            }, + +            27: /* escape */ () => { +                notifyParent('popupClose'); +            }, + +            37: /* left */ () => { +                notifyParent('scanLeft'); +            }, + +            39: /* right */ () => { +                notifyParent('scanRight');              }          }; |