Index: ui/keyboard/resources/elements/kb-keyboard.html |
diff --git a/ui/keyboard/resources/elements/kb-keyboard.html b/ui/keyboard/resources/elements/kb-keyboard.html |
index d47ca6d9ebe97e7388686a85e0ac549e215e6f8b..e02f0a7cc148a68918807d6998118768385c738f 100644 |
--- a/ui/keyboard/resources/elements/kb-keyboard.html |
+++ b/ui/keyboard/resources/elements/kb-keyboard.html |
@@ -26,7 +26,7 @@ |
-- allowing the shift and spacebar keys to be common across multiple |
-- keyboard layouts. |
--> |
- <content id="content" select="#{{layout}}-{{keyset}}"></content> |
+ <content id="content"></content> |
<kb-keyboard-overlay id="overlay" hidden></kb-keyboard-overlay> |
<kb-key-codes id="keyCodeMetadata"></kb-key-codes> |
</template> |
@@ -337,6 +337,20 @@ |
return false; |
}, |
+ keysetChanged: function(old) { |
+ // TODO(rsadam): Remove once content select support touch events on |
+ // children. |
kevers
2014/01/15 23:33:07
Don't think it's necessary to revert to old method
rsadam
2014/01/17 15:43:53
Done.
|
+ if (old) { |
+ var keyset = this.querySelector("#" + this.layout + "-" + old); |
+ if (keyset) |
+ keyset.hide(); |
+ } |
+ var keyset = this.activeKeyset; |
+ // Show the keyset if it has been initialized. |
+ if (keyset) |
+ keyset.show(); |
+ }, |
+ |
ready: function() { |
this.voiceInput_ = new VoiceInput(this); |
this.swipeHandler = this.move.bind(this); |
@@ -348,6 +362,9 @@ |
* @param{!Function} callback Callback function to register. |
*/ |
addKeysetChangedObserver: function(callback) { |
+ // TODO(rsadam): Uncomment this when we switch back to keysets being |
+ // displayed by content-select. |
kevers
2014/01/15 23:33:07
Nuke it. Content select offers no real advantage
rsadam
2014/01/17 15:43:53
Done.
|
+ /* |
if (!this.keysetChangedObserver) { |
var target = this.$.content; |
var self = this; |
@@ -369,8 +386,8 @@ |
subtree: true |
}); |
this.keysetChangedObserver = observer; |
- |
} |
+ */ |
this.addEventListener('stateChange', callback); |
}, |
@@ -802,8 +819,14 @@ |
/** |
* Handles a change in the keyboard layout. Auto-selects the default |
* keyset for the new layout. |
+ * @param {string | null} oldLayout The previous layout. |
kevers
2014/01/15 23:33:07
?string
rsadam
2014/01/17 15:43:53
No longer needed
|
*/ |
- layoutChanged: function() { |
+ layoutChanged: function(oldLayout) { |
+ if (oldLayout){ |
+ var keyset = this.querySelector("#" + oldLayout + "-" + this.keyset); |
+ if(keyset) |
+ keyset.classList.remove("activeKeyset"); |
kevers
2014/01/15 23:33:07
keyset.hide() or alternatively why not leave the o
rsadam
2014/01/17 15:43:53
Done.
|
+ } |
if (!this.selectDefaultKeyset()) { |
this.fire('stateChange', {state: 'loadingKeyset'}); |
@@ -833,6 +856,10 @@ |
}); |
} |
} |
+ // New keyset has already been loaded, can show immediately. |
+ // TODO(rsadam): Remove once content select supports touch on children. |
+ } else { |
+ this.activeKeyset.show(); |
} |
}, |
@@ -897,8 +924,12 @@ |
var keyset = this.activeKeyset; |
if (!keyset) |
return false; |
- var content = this.$.content.getDistributedNodes()[0]; |
- return content == keyset; |
+ var nodes = this.$.content.getDistributedNodes(); |
kevers
2014/01/15 23:33:07
If we simply append children to the keyboard, I do
rsadam
2014/01/17 15:43:53
As we discussed offline, Polymer replaces appendCh
|
+ for (var i = 0; i < nodes.length; i++) { |
+ if (nodes[i].id && nodes[i].id == keyset.id) |
+ return true; |
+ } |
+ return false; |
}, |
/** |