Index: chrome/browser/resources/chromeos/keyboard_overlay.js |
diff --git a/chrome/browser/resources/chromeos/keyboard_overlay.js b/chrome/browser/resources/chromeos/keyboard_overlay.js |
index a8ccd1f472b193c949ef9ce9d2a271255f62d9dd..0d802181ac45fd35554f9d29e0b71ba462036c57 100644 |
--- a/chrome/browser/resources/chromeos/keyboard_overlay.js |
+++ b/chrome/browser/resources/chromeos/keyboard_overlay.js |
@@ -22,13 +22,15 @@ var BASE_INSTRUCTIONS = { |
var MODIFIER_TO_CLASS = { |
'SHIFT': 'modifier-shift', |
'CTRL': 'modifier-ctrl', |
- 'ALT': 'modifier-alt' |
+ 'ALT': 'modifier-alt', |
+ 'SEARCH': 'modifier-search' |
}; |
var IDENTIFIER_TO_CLASS = { |
'2A': 'is-shift', |
'1D': 'is-ctrl', |
- '38': 'is-alt' |
+ '38': 'is-alt', |
+ 'E0 5B': 'is-search' |
}; |
var LABEL_TO_IDENTIFIER = { |
@@ -121,7 +123,16 @@ function getLayouts() { |
* @return {Object} Keyboard shortcut data. |
*/ |
function getShortcutData() { |
- return keyboardOverlayData['shortcut']; |
+ var data = keyboardOverlayData['shortcut']; |
+ |
+ var searchKeyIsModifier = |
+ loadTimeData.getString('keyboardSearchKeyActsAsFunctionKey') == 'true'; |
+ var mergeData = searchKeyIsModifier ? |
+ keyboardOverlayData['searchModifierShortcuts'] : |
+ keyboardOverlayData['noSearchModifierShortcuts']; |
+ for (var key in mergeData) |
+ data[key] = mergeData[key]; |
+ return data; |
} |
/** |
@@ -163,6 +174,8 @@ function hex2char(hex) { |
return result; |
} |
+var searchIsPressed = false; |
+ |
/** |
* Returns a list of modifiers from the key event. |
* @param {Event} e The key event. |
@@ -177,17 +190,22 @@ function getModifiers(e) { |
16: 'SHIFT', |
17: 'CTRL', |
18: 'ALT', |
+ 91: 'SEARCH', |
}; |
var modifierWithKeyCode = keyCodeToModifier[e.keyCode]; |
- var isPressed = {'SHIFT': e.shiftKey, 'CTRL': e.ctrlKey, 'ALT': e.altKey}; |
- // if e.keyCode is one of Shift, Ctrl and Alt, isPressed should |
- // be changed because the key currently pressed |
- // does not affect the values of e.shiftKey, e.ctrlKey and e.altKey |
+ var isPressed = { |
+ 'SHIFT': e.shiftKey, |
+ 'CTRL': e.ctrlKey, |
+ 'ALT': e.altKey, |
+ 'SEARCH': searchIsPressed |
+ }; |
if (modifierWithKeyCode) |
isPressed[modifierWithKeyCode] = isKeyDown; |
+ searchIsPressed = isPressed['SEARCH']; |
+ |
// make the result array |
- return ['SHIFT', 'CTRL', 'ALT'].filter( |
+ return ['SHIFT', 'CTRL', 'ALT', 'SEARCH'].filter( |
function(modifier) { |
return isPressed[modifier]; |
}).sort(); |
@@ -248,7 +266,8 @@ function getKeyClasses(identifier, modifiers) { |
if ((identifier == '2A' && contains(modifiers, 'SHIFT')) || |
(identifier == '1D' && contains(modifiers, 'CTRL')) || |
- (identifier == '38' && contains(modifiers, 'ALT'))) { |
+ (identifier == '38' && contains(modifiers, 'ALT')) || |
+ (identifier == 'E0 5B' && contains(modifiers, 'SEARCH'))) { |
classes.push('pressed'); |
classes.push(IDENTIFIER_TO_CLASS[identifier]); |
} |
@@ -512,11 +531,18 @@ function initLayout() { |
instructions.style.height = (height * BASE_INSTRUCTIONS.height / |
BASE_KEYBOARD.height) + 'px'; |
+ var searchKeyIsModifier = |
mazda
2012/11/28 05:25:18
Please move this just before line 540.
danakj
2012/11/28 21:11:24
Done.
|
+ loadTimeData.getString('keyboardSearchKeyActsAsFunctionKey') == 'true'; |
+ |
var instructionsText = document.createElement('div'); |
instructionsText.id = 'instructions-text'; |
instructionsText.className = 'keyboard-overlay-instructions-text'; |
- instructionsText.innerHTML = |
- loadTimeData.getString('keyboardOverlayInstructions'); |
+ if (searchKeyIsModifier) |
mazda
2012/11/28 05:25:18
if (searchKeyIsModifier) {
...
} else {
...
}
danakj
2012/11/28 21:11:24
Done.
|
+ instructionsText.innerHTML = |
+ loadTimeData.getString('keyboardOverlayInstructionsWithSearch'); |
+ else |
+ instructionsText.innerHTML = |
+ loadTimeData.getString('keyboardOverlayInstructions'); |
instructions.appendChild(instructionsText); |
var instructionsHideText = document.createElement('div'); |
instructionsHideText.id = 'instructions-hide-text'; |