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

Side by Side Diff: chrome/browser/resources/chromeos/keyboard_overlay.js

Issue 2084553006: Fix the UK keyboard overlay Enter key shape (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 <include src="keyboard_overlay_data.js"> 5 <include src="keyboard_overlay_data.js">
6 6
7 var BASE_KEYBOARD = { 7 var BASE_KEYBOARD = {
8 top: 0, 8 top: 0,
9 left: 0, 9 left: 0,
10 width: 1237, 10 width: 1237,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 'f3' : 'keyboardOverlayF3', 150 'f3' : 'keyboardOverlayF3',
151 'f4' : 'keyboardOverlayF4', 151 'f4' : 'keyboardOverlayF4',
152 'f5' : 'keyboardOverlayF5', 152 'f5' : 'keyboardOverlayF5',
153 'f6' : 'keyboardOverlayF6', 153 'f6' : 'keyboardOverlayF6',
154 'f7' : 'keyboardOverlayF7', 154 'f7' : 'keyboardOverlayF7',
155 'f8' : 'keyboardOverlayF8', 155 'f8' : 'keyboardOverlayF8',
156 'f9' : 'keyboardOverlayF9', 156 'f9' : 'keyboardOverlayF9',
157 'f10' : 'keyboardOverlayF10', 157 'f10' : 'keyboardOverlayF10',
158 }; 158 };
159 159
160 var COMPOUND_ENTER_KEY_DATA = [815, 107, 60, 120];
161 var COMPOUND_ENTER_KEY_CLIP_PATH =
162 'polygon(0% 0%, 100% 0%, 100% 100%, 28% 100%, 28% 47%, 0% 47%)';
163 var COMPOUND_ENTER_KEY_OVERLAY_DIV_CLIP_PATH =
164 'polygon(12% 0%, 100% 0%, 100% 97%, 12% 97%)';
165
160 var IME_ID_PREFIX = '_comp_ime_'; 166 var IME_ID_PREFIX = '_comp_ime_';
161 var EXTENSION_ID_LEN = 32; 167 var EXTENSION_ID_LEN = 32;
162 168
163 var keyboardOverlayId = 'en_US'; 169 var keyboardOverlayId = 'en_US';
164 var identifierMap = {}; 170 var identifierMap = {};
165 171
166 /** 172 /**
167 * True after at least one keydown event has been received. 173 * True after at least one keydown event has been received.
168 */ 174 */
169 var gotKeyDown = false; 175 var gotKeyDown = false;
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 var keyData = keyboardGlyphData.keys[identifier]; 545 var keyData = keyboardGlyphData.keys[identifier];
540 var classes = getKeyClasses(identifier, modifiers, normModifiers); 546 var classes = getKeyClasses(identifier, modifiers, normModifiers);
541 var keyLabel = getKeyLabel(keyData, normModifiers); 547 var keyLabel = getKeyLabel(keyData, normModifiers);
542 var shortcutId = shortcutData[getAction(keyLabel, normModifiers)]; 548 var shortcutId = shortcutData[getAction(keyLabel, normModifiers)];
543 if (modifiers.length == 0 && 549 if (modifiers.length == 0 &&
544 (identifier == '2A' || identifier == '36')) { 550 (identifier == '2A' || identifier == '36')) {
545 // Either the right or left shift keys are used to disable the caps lock 551 // Either the right or left shift keys are used to disable the caps lock
546 // if it was enabled. To fix crbug.com/453623. 552 // if it was enabled. To fix crbug.com/453623.
547 shortcutId = 'keyboardOverlayDisableCapsLock'; 553 shortcutId = 'keyboardOverlayDisableCapsLock';
548 } 554 }
555
556 classes.push('keyboard-overlay-key-background');
557
549 if (shortcutId) { 558 if (shortcutId) {
550 classes.push('is-shortcut'); 559 classes.push('is-shortcut');
560 classes.push('keyboard-overlay-shortcut-key-background');
551 } 561 }
552 562
553 var key = $(keyId(identifier, i)); 563 var key = $(keyId(identifier, i));
554 key.className = classes.join(' '); 564 key.className = classes.join(' ');
555 565
556 if (!keyData) { 566 if (!keyData) {
557 continue; 567 continue;
558 } 568 }
559 569
560 var keyText = $(keyTextId(identifier, i)); 570 var keyText = $(keyTextId(identifier, i));
561 var keyTextValue = getKeyTextValue(keyData); 571 var keyTextValue = getKeyTextValue(keyData);
562 if (keyTextValue) { 572 if (keyTextValue) {
563 keyText.style.visibility = 'visible'; 573 keyText.style.visibility = 'visible';
564 } else { 574 } else {
565 keyText.style.visibility = 'hidden'; 575 keyText.style.visibility = 'hidden';
566 } 576 }
567 keyText.textContent = keyTextValue; 577 keyText.textContent = keyTextValue;
568 578
569 var shortcutText = $(shortcutTextId(identifier, i)); 579 var shortcutText = $(shortcutTextId(identifier, i));
570 if (shortcutId) { 580 if (shortcutId) {
571 shortcutText.style.visibility = 'visible'; 581 shortcutText.style.visibility = 'visible';
572 shortcutText.textContent = loadTimeData.getString(shortcutId); 582 shortcutText.textContent = loadTimeData.getString(shortcutId);
573 } else { 583 } else {
574 shortcutText.style.visibility = 'hidden'; 584 shortcutText.style.visibility = 'hidden';
575 } 585 }
576 586
587 if (layout[i][1] == 'COMPOUND_ENTER_KEY') {
588 var overlayDivClasses =
589 getKeyClasses(identifier, modifiers, normModifiers);
590 if (shortcutId)
591 overlayDivClasses.push('is-shortcut');
592 $(keyId(identifier, i) + '-sub').className = overlayDivClasses.join(' ');
593 }
594
577 var format = keyboardGlyphData.keys[layout[i][0]].format; 595 var format = keyboardGlyphData.keys[layout[i][0]].format;
578 if (format) { 596 if (format) {
579 if (format == 'left' || format == 'right') { 597 if (format == 'left' || format == 'right') {
580 shortcutText.style.textAlign = format; 598 shortcutText.style.textAlign = format;
581 keyText.style.textAlign = format; 599 keyText.style.textAlign = format;
582 } 600 }
583 } 601 }
584 } 602 }
585 } 603 }
586 604
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 loadTimeData.getString('keyboardOverlayLearnMoreURL'); 689 loadTimeData.getString('keyboardOverlayLearnMoreURL');
672 learnMoreLinkAnchor.textContent = 690 learnMoreLinkAnchor.textContent =
673 loadTimeData.getString('keyboardOverlayLearnMore'); 691 loadTimeData.getString('keyboardOverlayLearnMore');
674 learnMoreLinkText.appendChild(learnMoreLinkAnchor); 692 learnMoreLinkText.appendChild(learnMoreLinkAnchor);
675 instructions.appendChild(learnMoreLinkText); 693 instructions.appendChild(learnMoreLinkText);
676 keyboard.appendChild(instructions); 694 keyboard.appendChild(instructions);
677 695
678 for (var i = 0; i < layout.length; i++) { 696 for (var i = 0; i < layout.length; i++) {
679 var array = layout[i]; 697 var array = layout[i];
680 var identifier = remapIdentifier(array[0]); 698 var identifier = remapIdentifier(array[0]);
681 var x = Math.round((array[1] + offsetX) * multiplier); 699
682 var y = Math.round((array[2] + offsetY) * multiplier); 700 var keyDataX = 0;
683 var w = Math.round((array[3] - keyMargin) * multiplier); 701 var keyDataY = 0;
684 var h = Math.round((array[4] - keyMargin) * multiplier); 702 var keyDataW = 0;
703 var keyDataH = 0;
704 var isCompoundEnterKey = false;
705 if (array[1] == 'COMPOUND_ENTER_KEY') {
706 keyDataX = COMPOUND_ENTER_KEY_DATA[0];
707 keyDataY = COMPOUND_ENTER_KEY_DATA[1];
708 keyDataW = COMPOUND_ENTER_KEY_DATA[2];
709 keyDataH = COMPOUND_ENTER_KEY_DATA[3];
710 isCompoundEnterKey = true;
711 } else {
712 keyDataX = array[1];
713 keyDataY = array[2];
714 keyDataW = array[3];
715 keyDataH = array[4];
716 }
717
718 var x = Math.round((keyDataX + offsetX) * multiplier);
719 var y = Math.round((keyDataY + offsetY) * multiplier);
720 var w = Math.round((keyDataW - keyMargin) * multiplier);
721 var h = Math.round((keyDataH - keyMargin) * multiplier);
685 722
686 var key = document.createElement('div'); 723 var key = document.createElement('div');
687 key.id = keyId(identifier, i); 724 key.id = keyId(identifier, i);
688 key.className = 'keyboard-overlay-key'; 725 key.className = 'keyboard-overlay-key';
689 key.style.left = x + 'px'; 726 key.style.left = x + 'px';
690 key.style.top = y + 'px'; 727 key.style.top = y + 'px';
691 key.style.width = w + 'px'; 728 key.style.width = w + 'px';
692 key.style.height = h + 'px'; 729 key.style.height = h + 'px';
693 730
694 var keyText = document.createElement('div'); 731 var keyText = document.createElement('div');
695 keyText.id = keyTextId(identifier, i); 732 keyText.id = keyTextId(identifier, i);
696 keyText.className = 'keyboard-overlay-key-text'; 733 keyText.className = 'keyboard-overlay-key-text';
697 keyText.style.visibility = 'hidden'; 734 keyText.style.visibility = 'hidden';
698 key.appendChild(keyText); 735 key.appendChild(keyText);
699 736
700 var shortcutText = document.createElement('div'); 737 var shortcutText = document.createElement('div');
701 shortcutText.id = shortcutTextId(identifier, i); 738 shortcutText.id = shortcutTextId(identifier, i);
702 shortcutText.className = 'keyboard-overlay-shortcut-text'; 739 shortcutText.className = 'keyboard-overlay-shortcut-text';
703 shortcutText.style.visilibity = 'hidden'; 740 shortcutText.style.visilibity = 'hidden';
704 key.appendChild(shortcutText); 741 key.appendChild(shortcutText);
742
743 if (isCompoundEnterKey) {
744 key.style.webkitClipPath = COMPOUND_ENTER_KEY_CLIP_PATH;
745 keyText.style.webkitClipPath = COMPOUND_ENTER_KEY_CLIP_PATH;
746 shortcutText.style.webkitClipPath = COMPOUND_ENTER_KEY_CLIP_PATH;
747
748 // Add an overlay div to account for clipping and show the borders.
749 var overlayDiv = document.createElement('div');
750 overlayDiv.id = keyId(identifier, i) + '-sub';
751 overlayDiv.className = 'keyboard-overlay-key';
752 var overlayDivX = x - 3;
753 var overlayDivY = y + Math.round(h * 0.47) + 2;
754 var overlayDivW = Math.round(w * 0.28);
755 var overlayDivH = Math.round(h * (1 - 0.47)) + 1;
756
757 overlayDiv.style.left = overlayDivX + 'px';
758 overlayDiv.style.top = overlayDivY + 'px';
759 overlayDiv.style.width = overlayDivW + 'px';
760 overlayDiv.style.height = overlayDivH + 'px';
761 overlayDiv.style.webkitClipPath =
762 COMPOUND_ENTER_KEY_OVERLAY_DIV_CLIP_PATH;
763 keyboard.appendChild(overlayDiv);
764 }
765
705 keyboard.appendChild(key); 766 keyboard.appendChild(key);
706 767
707 minX = Math.min(minX, x); 768 minX = Math.min(minX, x);
708 maxX = Math.max(maxX, x + w); 769 maxX = Math.max(maxX, x + w);
709 minY = Math.min(minY, y); 770 minY = Math.min(minY, y);
710 maxY = Math.max(maxY, y + h); 771 maxY = Math.max(maxY, y + h);
711 } 772 }
712 773
713 var width = maxX - minX + 1; 774 var width = maxX - minX + 1;
714 var height = maxY - minY + 1; 775 var height = maxY - minY + 1;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 function onWidgetShown() { 929 function onWidgetShown() {
869 setTimeout(function() { 930 setTimeout(function() {
870 // Show and focus the instructions div after a delay so that chrome vox 931 // Show and focus the instructions div after a delay so that chrome vox
871 // speaks it correctly. 932 // speaks it correctly.
872 $('instructions').style.visibility = 'visible'; 933 $('instructions').style.visibility = 'visible';
873 $('instructions').focus(); 934 $('instructions').focus();
874 }, 500); 935 }, 500);
875 } 936 }
876 937
877 document.addEventListener('DOMContentLoaded', init); 938 document.addEventListener('DOMContentLoaded', init);
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/keyboard_overlay.css ('k') | chrome/browser/resources/chromeos/keyboard_overlay_data.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698