summaryrefslogtreecommitdiffstats
path: root/ui/keyboard/resources/elements/kb-keyboard.html
diff options
context:
space:
mode:
Diffstat (limited to 'ui/keyboard/resources/elements/kb-keyboard.html')
-rw-r--r--ui/keyboard/resources/elements/kb-keyboard.html43
1 files changed, 36 insertions, 7 deletions
diff --git a/ui/keyboard/resources/elements/kb-keyboard.html b/ui/keyboard/resources/elements/kb-keyboard.html
index b51b371..e22edc5 100644
--- a/ui/keyboard/resources/elements/kb-keyboard.html
+++ b/ui/keyboard/resources/elements/kb-keyboard.html
@@ -5,7 +5,8 @@
-->
<element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp"
- on-key-down="keyDown" attributes="keyset layout rows">
+ on-key-down="keyDown" on-key-longpress="keyLongpress"
+ attributes="keyset layout rows">
<template>
<style>
@host {
@@ -89,17 +90,25 @@
},
/**
- * Handles key-down event that is sent by kb-key.
- * @param {CustomEvent} event The key-down event dispatched by kb-key.
+ * Handles key-down event that is sent by kb-key-base.
+ * @param {CustomEvent} event The key-down event dispatched by
+ * kb-key-base.
* @param {Object} detail The detail of pressed kb-key.
*/
keyDown: function(event, detail) {
- var toKeyset = detail.toKeyset;
if (this.lastPressedKey)
this.lastPressedKey.classList.remove('active');
this.lastPressedKey = event.target;
this.lastPressedKey.classList.add('active');
repeatKey.cancel();
+ var toKeyset = detail.toKeyset;
+ if (toKeyset) {
+ this.keyset = toKeyset;
+ this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
+ detail.nextKeyset;
+ return;
+ }
+
if (detail.repeat) {
insertText(detail.char);
repeatKey.key = this.lastPressedKey;
@@ -113,8 +122,8 @@
},
/**
- * Handles key-up event that is sent by kb-key.
- * @param {CustomEvent} event The key-up event dispatched by kb-key.
+ * Handles key-up event that is sent by kb-key-base.
+ * @param {CustomEvent} event The key-up event dispatched by kb-key-base.
* @param {Object} detail The detail of pressed kb-key.
*/
keyUp: function(event, detail) {
@@ -127,8 +136,11 @@
}
var toKeyset = detail.toKeyset;
// Keyset transition key.
- if (toKeyset)
+ if (toKeyset) {
this.keyset = toKeyset;
+ this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
+ detail.nextKeyset;
+ }
var toLayout = detail.toLayout;
// Layout transition key.
if (toLayout)
@@ -156,6 +168,23 @@
insertText(char);
},
+ /*
+ * Handles key-longpress event that is sent by kb-key-base.
+ * @param {CustomEvent} event The key-longpress event dispatched by
+ * kb-key-base.
+ * @param {Object} detail The detail of pressed key.
+ */
+ keyLongpress: function(event, detail) {
+ this.lastPressedKey.classList.remove('active');
+ var toKeyset = detail.toKeyset;
+ // Keyset transtion key.
+ if (toKeyset) {
+ this.keyset = toKeyset;
+ this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
+ detail.nextKeyset;
+ }
+ },
+
/**
* Handles a change in the keyboard layout. Auto-selects the default
* keyset for the new layout.