From 5d3625e2a82b731a3e199af42e0402953b8da666 Mon Sep 17 00:00:00 2001 From: Insality Date: Sat, 12 Nov 2022 12:50:19 +0200 Subject: [PATCH] Solve #199 Add input consume flag while input is selected. With false value it's allow to interact with other input components while input is selected (current input will be unselected if this case) --- druid/extended/input.lua | 5 ++++- druid/styles/default/style.lua | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/druid/extended/input.lua b/druid/extended/input.lua index 36da224..9c502cc 100755 --- a/druid/extended/input.lua +++ b/druid/extended/input.lua @@ -87,6 +87,7 @@ end -- @tfield[opt=false] bool IS_LONGTAP_ERASE Is long tap will erase current input data -- @tfield[opt=*] string MASK_DEFAULT_CHAR Default character mask for password input -- @tfield[opt=false] bool IS_UNSELECT_ON_RESELECT If true, call unselect on select selected input +-- @tfield[opt=false] bool IS_CONSUME_INPUT_WHILE_SELECTED If true, will consume input while input is selected. If false - it's allow to interact with other input component while selected -- @tfield function on_select (self, button_node) Callback on input field selecting -- @tfield function on_unselect (self, button_node) Callback on input field unselecting -- @tfield function on_input_wrong (self, button_node) Callback on wrong user input @@ -97,6 +98,7 @@ function Input.on_style_change(self, style) self.style.IS_LONGTAP_ERASE = style.IS_LONGTAP_ERASE or false self.style.MASK_DEFAULT_CHAR = style.MASK_DEFAULT_CHAR or "*" self.style.IS_UNSELECT_ON_RESELECT = style.IS_UNSELECT_ON_RESELECT or false + self.style.IS_CONSUME_INPUT_WHILE_SELECTED = style.IS_CONSUME_INPUT_WHILE_SELECTED or false self.style.on_select = style.on_select or function(_, button_node) end self.style.on_unselect = style.on_unselect or function(_, button_node) end @@ -214,7 +216,8 @@ function Input.on_input(self, action_id, action) end end - return self.is_selected + local is_consume_input = self.style.IS_CONSUME_INPUT_WHILE_SELECTED and self.is_selected + return is_consume_input end diff --git a/druid/styles/default/style.lua b/druid/styles/default/style.lua index 897b599..a25f212 100644 --- a/druid/styles/default/style.lua +++ b/druid/styles/default/style.lua @@ -113,6 +113,7 @@ M["input"] = { BUTTON_SELECT_INCREASE = 1.06, MASK_DEFAULT_CHAR = "*", IS_UNSELECT_ON_RESELECT = false, + IS_CONSUME_INPUT_WHILE_SELECTED = true, on_select = function(self, button_node) local target_scale = self.button.start_scale