Skip to content

Commit 223ff9d

Browse files
committed
🚸 增加空格键进入节点编辑状态的操作设置项
1 parent da3b307 commit 223ff9d

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

app/src/core/service/Settings.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export namespace Settings {
8585
mouseRightDragBackground: "cut" | "moveCamera";
8686
textNodeContentLineBreak: "enter" | "ctrlEnter" | "altEnter" | "shiftEnter";
8787
textNodeExitEditMode: "enter" | "ctrlEnter" | "altEnter" | "shiftEnter";
88-
textNodeStartEditMode: "enter" | "ctrlEnter" | "altEnter" | "shiftEnter";
88+
textNodeStartEditMode: "enter" | "ctrlEnter" | "altEnter" | "shiftEnter" | "space";
8989
textNodeSelectAllWhenStartEditByKeyboard: boolean;
9090
textNodeSelectAllWhenStartEditByMouseClick: boolean;
9191
mouseWheelMode: "zoom" | "move" | "moveX";

app/src/core/service/controlService/keyboardOnlyEngine/keyboardOnlyEngine.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,31 @@ export namespace KeyboardOnlyEngine {
5555
* 仅在最开始调用一次
5656
*/
5757
function bindKeyEvents() {
58+
const startEditNode = (event: KeyboardEvent, selectedNode: TextNode) => {
59+
event.preventDefault(); // 这个prevent必须开启,否则会立刻在刚创建的输入框里输入一个换行符。
60+
addSuccessEffect();
61+
// 编辑节点
62+
editTextNode(selectedNode, textNodeSelectAllWhenStartEditByKeyboard);
63+
};
64+
5865
window.addEventListener("keydown", (event) => {
5966
if (event.key === "Enter") {
6067
const enterKeyDetail = getEnterKey(event);
6168
if (textNodeStartEditMode === enterKeyDetail) {
6269
// 这个还必须在down的位置上,因为在up上会导致无限触发
6370
const selectedNode = StageManager.getTextNodes().find((node) => node.isSelected);
6471
if (!selectedNode) return;
65-
event.preventDefault(); // 这个prevent必须开启,否则会立刻在刚创建的输入框里输入一个换行符。
66-
addSuccessEffect();
67-
// 编辑节点
68-
editTextNode(selectedNode, textNodeSelectAllWhenStartEditByKeyboard);
72+
startEditNode(event, selectedNode);
6973
} else {
7074
// 用户可能记错了快捷键
7175
addFailEffect();
7276
}
77+
} else if (event.key === " ") {
78+
if (textNodeStartEditMode === "space") {
79+
const selectedNode = StageManager.getTextNodes().find((node) => node.isSelected);
80+
if (!selectedNode) return;
81+
startEditNode(event, selectedNode);
82+
}
7383
} else if (event.key === "Escape") {
7484
// 取消全部选择
7585
for (const stageObject of StageManager.getStageObject()) {

app/src/locales/zh_CN.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ settings:
388388
ctrlEnter: ctrl + Enter
389389
altEnter: alt + Enter
390390
shiftEnter: shift + Enter
391+
space: 空格键
391392
description: |
392393
实际上按F2键也可以进入编辑模式,这里还可以再加选一种
393394
textNodeExitEditMode:

0 commit comments

Comments
 (0)