Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit 278b25f

Browse files
committed
Merge pull request #1114 from adobe/rlim/cmd-or-ctrl-issue
Rlim/cmd or ctrl issue
2 parents fef4547 + dbc93dd commit 278b25f

File tree

3 files changed

+39
-23
lines changed

3 files changed

+39
-23
lines changed

src/command/KeyBindingManager.js

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,17 @@ define(function (require, exports, module) {
6666
* @param {string} key The key that's pressed
6767
* @return {string} The normalized key descriptor
6868
*/
69-
function _buildKeyDescriptor(hasCtrl, hasAlt, hasShift, key) {
69+
function _buildKeyDescriptor(hasMacCtrl, hasCtrl, hasAlt, hasShift, key) {
7070
if (!key) {
7171
console.log("KeyBindingManager _buildKeyDescriptor() - No key provided!");
7272
return "";
7373
}
7474

7575
var keyDescriptor = [];
7676

77+
if (hasMacCtrl) {
78+
keyDescriptor.push("Ctrl");
79+
}
7780
if (hasAlt) {
7881
keyDescriptor.push("Alt");
7982
}
@@ -86,7 +89,7 @@ define(function (require, exports, module) {
8689
if (brackets.platform === "win") {
8790
keyDescriptor.unshift("Ctrl");
8891
} else {
89-
keyDescriptor.push("Ctrl");
92+
keyDescriptor.push("Cmd");
9093
}
9194
}
9295

@@ -114,17 +117,21 @@ define(function (require, exports, module) {
114117
* @return {string} The normalized key descriptor or null if the descriptor invalid
115118
*/
116119
function normalizeKeyDescriptorString(origDescriptor) {
117-
var hasCtrl = false,
120+
var hasMacCtrl = false,
121+
hasCtrl = false,
118122
hasAlt = false,
119123
hasShift = false,
120124
key = "",
121125
error = false;
122126

123127
origDescriptor.split("-").forEach(function parseDescriptor(ele, i, arr) {
124128
if (_isModifier("ctrl", ele, hasCtrl)) {
125-
hasCtrl = true;
129+
if (brackets.platform === "mac") {
130+
hasMacCtrl = true;
131+
} else {
132+
hasCtrl = true;
133+
}
126134
} else if (_isModifier("cmd", ele, hasCtrl, origDescriptor)) {
127-
console.log("KeyBindingManager normalizeKeyDescriptorString() - Cmd getting mapped to Ctrl from: " + origDescriptor);
128135
hasCtrl = true;
129136
} else if (_isModifier("alt", ele, hasAlt, origDescriptor)) {
130137
hasAlt = true;
@@ -157,7 +164,7 @@ define(function (require, exports, module) {
157164
return null;
158165
}
159166

160-
return _buildKeyDescriptor(hasCtrl, hasAlt, hasShift, key);
167+
return _buildKeyDescriptor(hasMacCtrl, hasCtrl, hasAlt, hasShift, key);
161168
}
162169

163170
/**
@@ -200,7 +207,8 @@ define(function (require, exports, module) {
200207
* Takes a keyboard event and translates it into a key in a key map
201208
*/
202209
function _translateKeyboardEvent(event) {
203-
var hasCtrl = (event.metaKey || event.ctrlKey),
210+
var hasMacCtrl = (brackets.platform === "win") ? false : (event.ctrlKey),
211+
hasCtrl = (brackets.platform === "win") ? (event.ctrlKey) : (event.metaKey),
204212
hasAlt = (event.altKey),
205213
hasShift = (event.shiftKey),
206214
key = String.fromCharCode(event.keyCode);
@@ -224,7 +232,7 @@ define(function (require, exports, module) {
224232
if (key === "\t") { key = "Tab"; }
225233
key = _mapKeycodeToKey(event.keyCode, key);
226234

227-
return _buildKeyDescriptor(hasCtrl, hasAlt, hasShift, key);
235+
return _buildKeyDescriptor(hasMacCtrl, hasCtrl, hasAlt, hasShift, key);
228236
}
229237

230238
/**
@@ -236,8 +244,9 @@ define(function (require, exports, module) {
236244
var displayStr;
237245

238246
if (brackets.platform === "mac") {
239-
displayStr = descriptor.replace(/-/g, ""); // remove dashes
240-
displayStr = displayStr.replace("Ctrl", "\u2318"); // Ctrl > command symbol
247+
displayStr = descriptor.replace(/-/g, ""); // remove dashes
248+
displayStr = displayStr.replace("Ctrl", "\u2303"); // Ctrl > control symbol
249+
displayStr = displayStr.replace("Cmd", "\u2318"); // Cmd > command symbol
241250
displayStr = displayStr.replace("Shift", "\u21E7"); // Shift > shift symbol
242251
displayStr = displayStr.replace("Alt", "\u2325"); // Alt > option symbol
243252
} else {
@@ -269,7 +278,8 @@ define(function (require, exports, module) {
269278
result = null,
270279
normalized,
271280
normalizedDisplay,
272-
targetPlatform = keyBinding.platform || platform || brackets.platform,
281+
explicitPlatform = keyBinding.platform || platform,
282+
targetPlatform = explicitPlatform || brackets.platform,
273283
command;
274284

275285
// skip if this binding doesn't match the current platform
@@ -278,6 +288,12 @@ define(function (require, exports, module) {
278288
}
279289

280290
key = (keyBinding.key) || keyBinding;
291+
if (brackets.platform === "mac" && explicitPlatform === undefined) {
292+
key = key.replace("Ctrl", "Cmd");
293+
if (keyBinding.displayKey !== undefined) {
294+
keyBinding.displayKey = keyBinding.displayKey.replace("Ctrl", "Cmd");
295+
}
296+
}
281297
normalized = normalizeKeyDescriptorString(key);
282298

283299
// skip if the key binding is invalid
@@ -376,16 +392,14 @@ define(function (require, exports, module) {
376392
results = [];
377393

378394
keyBindings.forEach(function (keyBindingRequest) {
379-
targetPlatform = keyBindingRequest.platform || brackets.platform;
380-
keyBinding = _addBinding(commandID, keyBindingRequest, targetPlatform);
395+
keyBinding = _addBinding(commandID, keyBindingRequest, keyBindingRequest.platform);
381396

382397
if (keyBinding) {
383398
results.push(keyBinding);
384399
}
385400
});
386401
} else {
387-
targetPlatform = platform || brackets.platform;
388-
results = _addBinding(commandID, keyBindings, targetPlatform);
402+
results = _addBinding(commandID, keyBindings, platform);
389403
}
390404

391405
return results;

src/command/Menus.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -777,14 +777,14 @@ define(function (require, exports, module) {
777777
menu.addMenuItem(Commands.EDIT_FIND, "Ctrl-F");
778778
menu.addMenuItem(Commands.EDIT_FIND_IN_FILES, "Ctrl-Shift-F");
779779
menu.addMenuItem(Commands.EDIT_FIND_NEXT, [{key: "F3", platform: "win"},
780-
{key: "Ctrl-G", platform: "mac"}]);
780+
{key: "Cmd-G", platform: "mac"}]);
781781

782782
menu.addMenuItem(Commands.EDIT_FIND_PREVIOUS, [{key: "Shift-F3", platform: "win"},
783-
{key: "Ctrl-Shift-G", platform: "mac"}]);
783+
{key: "Cmd-Shift-G", platform: "mac"}]);
784784

785785
menu.addMenuDivider();
786786
menu.addMenuItem(Commands.EDIT_REPLACE, [{key: "Ctrl-H", platform: "win"},
787-
{key: "Ctrl-Alt-F", platform: "mac"}]);
787+
{key: "Cmd-Alt-F", platform: "mac"}]);
788788
menu.addMenuDivider();
789789
menu.addMenuItem(Commands.EDIT_INDENT, [{key: "Indent", displayKey: "Tab"}]);
790790
menu.addMenuItem(Commands.EDIT_UNINDENT, [{key: "Unindent", displayKey: "Shift-Tab"}]);
@@ -811,7 +811,7 @@ define(function (require, exports, module) {
811811
menu = addMenu(Strings.NAVIGATE_MENU, AppMenuBar.NAVIGATE_MENU);
812812
menu.addMenuItem(Commands.NAVIGATE_QUICK_OPEN, "Ctrl-Shift-O");
813813
menu.addMenuItem(Commands.NAVIGATE_GOTO_LINE, [{key: "Ctrl-G", platform: "win"},
814-
{key: "Ctrl-L", platform: "mac"}]);
814+
{key: "Cmd-L", platform: "mac"}]);
815815

816816
menu.addMenuItem(Commands.NAVIGATE_GOTO_DEFINITION, "Ctrl-T");
817817
menu.addMenuDivider();
@@ -824,9 +824,9 @@ define(function (require, exports, module) {
824824
*/
825825
menu = addMenu(Strings.DEBUG_MENU, AppMenuBar.DEBUG_MENU);
826826
menu.addMenuItem(Commands.DEBUG_SHOW_DEVELOPER_TOOLS, [{key: "F12", platform: "win"},
827-
{key: "Ctrl-Opt-I", platform: "mac"}]);
827+
{key: "Cmd-Opt-I", platform: "mac"}]);
828828
menu.addMenuItem(Commands.DEBUG_REFRESH_WINDOW, [{key: "F5", platform: "win"},
829-
{key: "Ctrl-R", platform: "mac"}]);
829+
{key: "Cmd-R", platform: "mac"}]);
830830
menu.addMenuItem(Commands.DEBUG_NEW_BRACKETS_WINDOW);
831831
menu.addMenuDivider();
832832
menu.addMenuItem(Commands.DEBUG_RUN_UNIT_TESTS);

src/document/DocumentCommandHandlers.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,8 +767,10 @@ define(function (require, exports, module) {
767767
CommandManager.register(Strings.CMD_NEXT_DOC, Commands.NAVIGATE_NEXT_DOC, handleGoNextDoc);
768768
CommandManager.register(Strings.CMD_PREV_DOC, Commands.NAVIGATE_PREV_DOC, handleGoPrevDoc);
769769

770-
KeyBindingManager.addBinding(Commands.NAVIGATE_NEXT_DOC, "Ctrl-Tab");
771-
KeyBindingManager.addBinding(Commands.NAVIGATE_PREV_DOC, "Ctrl-Shift-Tab");
770+
KeyBindingManager.addBinding(Commands.NAVIGATE_NEXT_DOC, [{key: "Ctrl-Tab", platform: "win"},
771+
{key: "Ctrl-Tab", platform: "mac"}]);
772+
KeyBindingManager.addBinding(Commands.NAVIGATE_PREV_DOC, [{key: "Ctrl-Shift-Tab", platform: "win"},
773+
{key: "Ctrl-Shift-Tab", platform: "mac"}]);
772774

773775
// Listen for changes that require updating the editor titlebar
774776
$(DocumentManager).on("dirtyFlagChange", handleDirtyChange);

0 commit comments

Comments
 (0)