Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: ui/keyboard/resources/elements/kb-keyboard.html

Issue 23621045: Layout transitions triggered on key-down instead of key-up. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor style fixes. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!-- 1 <!--
2 -- Copyright 2013 The Chromium Authors. All rights reserved. 2 -- Copyright 2013 The Chromium Authors. All rights reserved.
3 -- Use of this source code is governed by a BSD-style license that can be 3 -- Use of this source code is governed by a BSD-style license that can be
4 -- found in the LICENSE file. 4 -- found in the LICENSE file.
5 --> 5 -->
6 6
7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp" 7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp"
8 on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up" 8 on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up"
9 on-pointerdown="down" on-enable-sel="enableSel" 9 on-pointerdown="down" on-enable-sel="enableSel"
10 on-enable-dbl="enableDbl" attributes="keyset layout rows capsLocked"> 10 on-enable-dbl="enableDbl" attributes="keyset layout rows capsLocked">
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 */ 282 */
283 keyDown: function(event, detail) { 283 keyDown: function(event, detail) {
284 if (this.skipEvent(detail)) 284 if (this.skipEvent(detail))
285 return; 285 return;
286 286
287 if (this.lastPressedKey) 287 if (this.lastPressedKey)
288 this.lastPressedKey.classList.remove('active'); 288 this.lastPressedKey.classList.remove('active');
289 this.lastPressedKey = event.target; 289 this.lastPressedKey = event.target;
290 this.lastPressedKey.classList.add('active'); 290 this.lastPressedKey.classList.add('active');
291 repeatKey.cancel(); 291 repeatKey.cancel();
292
293 var char = detail.char;
294 switch(char) {
295 case 'Shift':
296 // Removes caps-lock if caps-locked.
297 if(this.classList.contains('caps-locked')) {
298 this.classList.remove('caps-locked');
299 }
300 break;
301 default:
302 break;
303 }
304
305 // A transition key was pressed, immediately move to new keyset.
292 var toKeyset = detail.toKeyset; 306 var toKeyset = detail.toKeyset;
293 if (toKeyset) { 307 if (toKeyset) {
294 this.keyset = toKeyset; 308 this.keyset = toKeyset;
295 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset = 309 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
296 detail.nextKeyset; 310 detail.nextKeyset;
297 return; 311 return;
298 } 312 }
299 313
300 if (detail.repeat) { 314 if (detail.repeat) {
301 this.keyTyped(detail); 315 this.keyTyped(detail);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 return; 406 return;
393 if (swipeInProgress) 407 if (swipeInProgress)
394 return; 408 return;
395 this.lastPressedKey.classList.remove('active'); 409 this.lastPressedKey.classList.remove('active');
396 if (this.lastPressedKey != event.target) 410 if (this.lastPressedKey != event.target)
397 return; 411 return;
398 if (repeatKey.key == event.target) { 412 if (repeatKey.key == event.target) {
399 repeatKey.cancel(); 413 repeatKey.cancel();
400 return; 414 return;
401 } 415 }
402 var toKeysetId = detail.toKeyset; 416 var toKeysetId = detail.toKeyset;
bshe 2013/09/16 17:52:01 It is probably worth mention in a comment here abo
rsadam 2013/09/16 18:23:49 Done.
403 // Keyset transition key. 417 // Keyset transition key.
404 if (toKeysetId) { 418 if (toKeysetId) {
405 this.keyset = toKeysetId; 419 this.keyset = toKeysetId;
406 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset = 420 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
407 detail.nextKeyset; 421 detail.nextKeyset;
408 } 422 }
409 var toLayoutId = detail.toLayout; 423 var toLayoutId = detail.toLayout;
410 // Layout transition key. 424 // Layout transition key.
411 if (toLayoutId) 425 if (toLayoutId)
412 this.layout = toLayoutId; 426 this.layout = toLayoutId;
413 var char = detail.char; 427 var char = detail.char;
414 if (enterUpperOnSpace) { 428 if (enterUpperOnSpace) {
415 enterUpperOnSpace = false; 429 enterUpperOnSpace = false;
416 if (char == ' ') 430 if (char == ' ')
417 this.keyset = 'upper'; 431 this.keyset = 'upper';
418 } 432 }
419 switch(char) { 433 switch(char) {
420 case 'Invalid': 434 case 'Invalid':
421 swipeStatus.swipeFlags = 0; 435 swipeStatus.swipeFlags = 0;
422 return; 436 return;
423 case 'Shift': 437 case 'Shift':
424 swipeStatus.swipeFlags = 0; 438 swipeStatus.swipeFlags = 0;
425 // We have reverted to lower case.
426 if(this.classList.contains('caps-locked'))
427 this.classList.remove('caps-locked');
428 return; 439 return;
429 case 'Microphone': 440 case 'Microphone':
430 this.voiceInput_.onDown(); 441 this.voiceInput_.onDown();
431 return; 442 return;
432 case '.': 443 case '.':
433 case '?': 444 case '?':
434 case '!': 445 case '!':
435 enterUpperOnSpace = true; 446 enterUpperOnSpace = true;
436 break; 447 break;
437 default: 448 default:
(...skipping 12 matching lines...) Expand all
450 * @param {Object} detail The detail of pressed key. 461 * @param {Object} detail The detail of pressed key.
451 */ 462 */
452 keyLongpress: function(event, detail) { 463 keyLongpress: function(event, detail) {
453 // If the gesture is long press, remove the pointermove listener. 464 // If the gesture is long press, remove the pointermove listener.
454 this.removeEventListener('pointermove', this.swipeHandler, false); 465 this.removeEventListener('pointermove', this.swipeHandler, false);
455 var toKeyset = detail.toKeyset; 466 var toKeyset = detail.toKeyset;
456 // Keyset transtion key. 467 // Keyset transtion key.
457 if (toKeyset) { 468 if (toKeyset) {
458 this.keyset = toKeyset; 469 this.keyset = toKeyset;
459 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset = 470 this.querySelector('#' + this.layout + '-' + this.keyset).nextKeyset =
460 detail.nextKeyset; 471 detail.nextKeyset;
bshe 2013/09/16 17:52:01 nit: accidentally removed the empty line?
rsadam 2013/09/16 18:23:49 Done.
461
462 // Locks the keyset before removing active to prevent flicker. 472 // Locks the keyset before removing active to prevent flicker.
463 this.classList.add('caps-locked'); 473 this.classList.add('caps-locked');
464 // Makes last pressed key inactive if transit to a new keyset on long 474 // Makes last pressed key inactive if transit to a new keyset on long
465 // press. 475 // press.
466 this.lastPressedKey.classList.remove('active'); 476 this.lastPressedKey.classList.remove('active');
467 } 477 }
468 }, 478 },
469 479
470 /** 480 /**
471 * Handles a change in the keyboard layout. Auto-selects the default 481 * Handles a change in the keyboard layout. Auto-selects the default
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 } 557 }
548 } 558 }
549 if (keysetsLoaded) 559 if (keysetsLoaded)
550 console.error('No default keyset found for ' + this.layout); 560 console.error('No default keyset found for ' + this.layout);
551 return false; 561 return false;
552 } 562 }
553 }); 563 });
554 </script> 564 </script>
555 </polymer-element> 565 </polymer-element>
556 566
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698