Skip to content

Commit d2be7af

Browse files
committed
fix: accdental triple ctrlx3 press event in windows for ui overlay mode
1 parent 00f1ee7 commit d2be7af

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/command/KeyBindingManager.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1174,13 +1174,20 @@ define(function (require, exports, module) {
11741174
Control: true,
11751175
Meta: true
11761176
};
1177+
let isCtrlDepressed = false; // flag set to true if the user keeps the ctrl key pressed without releasing
11771178
function _detectTripleCtrlKeyPress(event) {
1179+
const isCtrlKeyPressStart = !isCtrlDepressed;
1180+
if (ctrlKeyCodes[event.code] && ctrlKeyCodes[event.key]) {
1181+
isCtrlDepressed = true;
1182+
}
11781183
if(PreferencesManager && !PreferencesManager.get(PREF_TRIPLE_CTRL_KEY_PRESS_ENABLED)){
11791184
return false;
11801185
}
11811186
const currentTime = new Date().getTime(); // Get the current time
1182-
if (ctrlKeyCodes[event.code] && ctrlKeyCodes[event.key] && !event.shiftKey && !event.altKey) {
1187+
if (ctrlKeyCodes[event.code] && ctrlKeyCodes[event.key] && !event.shiftKey && !event.altKey
1188+
&& isCtrlKeyPressStart) {
11831189
pressCount++;
1190+
isCtrlDepressed = true;
11841191
if(pressCount === PRESS_ACTIVATE_COUNT && (currentTime - lastCtrlKeyPressTime) <= doublePressInterval) {
11851192
KeyboardOverlayMode.startOverlayMode();
11861193
event.stopPropagation();
@@ -1282,6 +1289,15 @@ define(function (require, exports, module) {
12821289
_handleKeyEvent,
12831290
true
12841291
);
1292+
window.document.body.addEventListener(
1293+
"keyup",
1294+
(event)=>{
1295+
if (ctrlKeyCodes[event.code] && ctrlKeyCodes[event.key]) {
1296+
isCtrlDepressed = false;
1297+
}
1298+
},
1299+
true
1300+
);
12851301
document.body.addEventListener('mousemove', ()=>{
12861302
if(!mouseCursorHidden){
12871303
return;

0 commit comments

Comments
 (0)