diff --git a/datafiles/data/Nodes/Internal.zip b/datafiles/data/Nodes/Internal.zip index c317b6d7d..f1aa548ef 100644 Binary files a/datafiles/data/Nodes/Internal.zip and b/datafiles/data/Nodes/Internal.zip differ diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index ba703c3f2..ad6239a53 100644 Binary files a/datafiles/data/Theme.zip and b/datafiles/data/Theme.zip differ diff --git a/objects/o_main/Create_0.gml b/objects/o_main/Create_0.gml index 68f80b519..5bac02a78 100644 --- a/objects/o_main/Create_0.gml +++ b/objects/o_main/Create_0.gml @@ -59,10 +59,6 @@ panelInit(); - globalvar HOTKEY_MOD, HOTKEY_BLOCK; - HOTKEY_MOD = 0; - HOTKEY_BLOCK = false; - #endregion #region Loader diff --git a/objects/o_main/KeyPress_1.gml b/objects/o_main/KeyPress_1.gml index af7394135..f9e08d523 100644 --- a/objects/o_main/KeyPress_1.gml +++ b/objects/o_main/KeyPress_1.gml @@ -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) { diff --git a/objects/o_main/KeyRelease_1.gml b/objects/o_main/KeyRelease_1.gml index 9db7c3dc4..f64ada15c 100644 --- a/objects/o_main/KeyRelease_1.gml +++ b/objects/o_main/KeyRelease_1.gml @@ -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; \ No newline at end of file +KEYBOARD_PRESSED = vk_nokey; +HOTKEY_ACT = false; \ No newline at end of file diff --git a/objects/o_main/Step_0.gml b/objects/o_main/Step_0.gml index 6abcaabe4..06a8116ac 100644 --- a/objects/o_main/Step_0.gml +++ b/objects/o_main/Step_0.gml @@ -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; diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 236c781bf..fb9d69b05 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -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, "."); diff --git a/scripts/key_press/key_press.gml b/scripts/key_press/key_press.gml index 339bf4139..449acd850 100644 --- a/scripts/key_press/key_press.gml +++ b/scripts/key_press/key_press.gml @@ -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; diff --git a/scripts/node_path_reverse/node_path_reverse.gml b/scripts/node_path_reverse/node_path_reverse.gml index c41fe8716..c0f2aa248 100644 --- a/scripts/node_path_reverse/node_path_reverse.gml +++ b/scripts/node_path_reverse/node_path_reverse.gml @@ -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;