Hotkey now trigger on key down instead of key press (This should allow macro, input injection to work).

This commit is contained in:
Tanasart 2025-02-08 13:23:06 +07:00
parent a2382a42cc
commit edef7d188d
9 changed files with 26 additions and 16 deletions

Binary file not shown.

Binary file not shown.

View file

@ -59,10 +59,6 @@
panelInit();
globalvar HOTKEY_MOD, HOTKEY_BLOCK;
HOTKEY_MOD = 0;
HOTKEY_BLOCK = false;
#endregion
#region Loader

View file

@ -7,6 +7,7 @@ if(kb_hkey <= 0 && PREFERENCES.keyboard_check_sweep) for(var i = 2; i < 320; i++
kb_time = 0;
kb_hold = false;
KEYBOARD_PRESSED = kb_hkey;
if(!PREFERENCES.keyboard_capture_raw) {

View file

@ -1,7 +1,8 @@
/// @description
kb_time = 0;
kb_hold = false;
kb_hkey = vk_nokey;
keyboard_lastchar = "";
kb_hkey = vk_nokey;
KEYBOARD_PRESSED = vk_nokey;
KEYBOARD_PRESSED = vk_nokey;
HOTKEY_ACT = false;

View file

@ -24,30 +24,37 @@ if(!LOADING && PROJECT.active && !PROJECT.safeMode) { //node step
}
#region hotkey
if(!HOTKEY_BLOCK) {
var _action = false;
if(struct_has(HOTKEYS, 0)) {
if(!HOTKEY_ACT && struct_has(HOTKEYS, 0)) {
var l = HOTKEYS[$ 0];
for(var i = 0, n = ds_list_size(l); i < n; i++) {
var hotkey = l[| i];
if(hotkey.key == 0 && hotkey.modi == MOD_KEY.none) continue;
if(key_press(hotkey.key, hotkey.modi))
if(key_press(hotkey.key, hotkey.modi, true)) {
hotkey.action();
_action |= hotkey.key != noone;
}
}
}
if(struct_has(HOTKEYS, FOCUS_STR)) {
if(!HOTKEY_ACT && struct_has(HOTKEYS, FOCUS_STR)) {
var list = HOTKEYS[$ FOCUS_STR];
for(var i = 0, n = ds_list_size(list); i < n; i++) {
var hotkey = list[| i];
if(hotkey.key == 0 && hotkey.modi == MOD_KEY.none) continue;
if(key_press(hotkey.key, hotkey.modi))
if(key_press(hotkey.key, hotkey.modi, true)) {
hotkey.action();
_action |= hotkey.key != noone;
}
}
}
HOTKEY_ACT |= _action;
}
HOTKEY_BLOCK = false;

View file

@ -41,10 +41,10 @@
globalvar HOTKEYS, HOTKEY_CONTEXT;
LATEST_VERSION = 1_18_00_0;
VERSION = 1_18_07_2;
VERSION = 1_18_08_0;
SAVE_VERSION = 1_18_05_0;
VERSION_STRING = MAC? "1.18.003m" : "1.18.8";
BUILD_NUMBER = 118072.011;
VERSION_STRING = MAC? "1.18.003m" : "1.18.8.1.001";
BUILD_NUMBER = 118080.001;
PREF_VERSION = 1_17_1;
var _vsp = string_split(VERSION_STRING, ".");

View file

@ -1,4 +1,9 @@
#region key map
globalvar HOTKEY_MOD, HOTKEY_BLOCK, HOTKEY_ACT;
HOTKEY_MOD = 0;
HOTKEY_BLOCK = false;
HOTKEY_ACT = false;
enum MOD_KEY {
none = 0,
ctrl = 1 << 0,
@ -167,7 +172,7 @@
#endregion
function key_press(_key, _mod = MOD_KEY.none) {
function key_press(_key, _mod = MOD_KEY.none, _hold = false) {
if(WIDGET_CURRENT) return false;
if(_mod == MOD_KEY.none && _key == noone) return false;
@ -178,7 +183,7 @@ function key_press(_key, _mod = MOD_KEY.none) {
case KEY_GROUP.numeric : _keyPress = keyboard_key >= ord("0") && keyboard_key <= ord("9") break;
case noone : _keyPress = true; break;
default : _keyPress = keyboard_check_pressed(_key); break;
default : _keyPress = _hold? keyboard_check(_key) : keyboard_check_pressed(_key); break;
}
return _keyPress && _modPress;

View file

@ -5,7 +5,7 @@ function Node_Path_Reverse(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
newInput(0, nodeValue_PathNode("Path", self, noone))
.setVisible(true, true);
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, noone));
function _reversePath() constructor {
curr_path = noone;