diff --git a/druid/extended/input.lua b/druid/extended/input.lua index 5c28474..bbd49b9 100644 --- a/druid/extended/input.lua +++ b/druid/extended/input.lua @@ -83,6 +83,7 @@ end -- @table style -- @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 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 @@ -92,6 +93,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.on_select = style.on_select or function(_, button_node) end self.style.on_unselect = style.on_unselect or function(_, button_node) end @@ -278,6 +280,10 @@ function Input.select(self) self.on_input_select:trigger(self:get_context()) self.style.on_select(self, self.button.node) + else + if self.style.IS_UNSELECT_ON_RESELECT then + self:unselect(self) + end end end diff --git a/druid/styles/default/style.lua b/druid/styles/default/style.lua index 61e5ee7..111d291 100644 --- a/druid/styles/default/style.lua +++ b/druid/styles/default/style.lua @@ -95,8 +95,9 @@ M["swipe"] = { M["input"] = { IS_LONGTAP_ERASE = true, - BUTTON_SELECT_INCREASE = 1.1, + BUTTON_SELECT_INCREASE = 1.06, MASK_DEFAULT_CHAR = "*", + IS_UNSELECT_ON_RESELECT = false, on_select = function(self, button_node) local target_scale = self.button.start_scale