Skip to content

Commit 0b83caa

Browse files
committed
fix: support dual key bindings for Ctrl+Shift layout switching
Return two key combinations for Ctrl+Shift shortcut instead of single value. Ctrl+Shift快捷键返回两组按键组合,支持多组快捷键写入配置。 Log: 修复Ctrl+Shift切换快捷键支持双按键组合 PMS: BUG-357563 Influence: Ctrl+Shift布局切换快捷键现在支持两组按键绑定,切换行为更准确。
1 parent c633531 commit 0b83caa

1 file changed

Lines changed: 21 additions & 6 deletions

File tree

src/dcc-fcitx5configtool/qml/ShortcutsModule.qml

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,12 @@ DccObject {
191191
return ""
192192
}
193193
let value = enumKeys[index]
194-
195-
if (value === "Ctrl+Shift") value = "CTRL_SHIFT"
194+
195+
if (value === "Ctrl+Shift") {
196+
return [["Control", "Shift_L"], ["Control", "Shift", "Control_L"]]
197+
}
196198
if (value === "Alt+Shift") value = "ALT_SHIFT"
197-
199+
198200
if (value === "None") {
199201
return ""
200202
}
@@ -248,9 +250,22 @@ DccObject {
248250

249251
// 只在用户激活选择时写回,避免程序化更新触发写回
250252
onActivated: {
251-
dccData.fcitx5ConfigProxy.setValue(
252-
"Hotkey/EnumerateForwardKeys/0",
253-
reverseEnumerateForwardKeys(currentIndex), true)
253+
let reversed = reverseEnumerateForwardKeys(currentIndex)
254+
if (Array.isArray(reversed) && Array.isArray(reversed[0])) {
255+
dccData.fcitx5ConfigProxy.setValue(
256+
"Hotkey/EnumerateForwardKeys/0",
257+
reversed[0], true)
258+
dccData.fcitx5ConfigProxy.setValue(
259+
"Hotkey/EnumerateForwardKeys/1",
260+
reversed[1], true)
261+
} else {
262+
dccData.fcitx5ConfigProxy.setValue(
263+
"Hotkey/EnumerateForwardKeys/0",
264+
reversed, true)
265+
dccData.fcitx5ConfigProxy.setValue(
266+
"Hotkey/EnumerateForwardKeys/1",
267+
[""], true)
268+
}
254269
}
255270
}
256271
}

0 commit comments

Comments
 (0)