From 2874d055203993ed9926589d05f72ed1898bdc10 Mon Sep 17 00:00:00 2001 From: Alexander Sedov <alex0player@gmail.com> Date: Tue, 9 Jun 2015 01:33:50 +0300 Subject: [PATCH] numberbox behaves more sanily when used backspace/delete in it --- game/engines/default/engine/ui/Numberbox.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/game/engines/default/engine/ui/Numberbox.lua b/game/engines/default/engine/ui/Numberbox.lua index 55c59e861e..7f177020bd 100644 --- a/game/engines/default/engine/ui/Numberbox.lua +++ b/game/engines/default/engine/ui/Numberbox.lua @@ -50,11 +50,11 @@ function _M:generate() self.key:addIgnore("_DOWN", false) self.key:addCommands{ - _UP = function() self.first = false self:updateText(1) end, - _DOWN = function() self.first = false self:updateText(-1) end, + _UP = function() self:updateText(1) end, + _DOWN = function() self:updateText(-1) end, __TEXTINPUT = function(c) if self.first then self.first = false self.tmp = {} self.cursor = 1 end - if #self.tmp and (c == '-' or c == '0' or c == '1' or c == '2' or c == '3' or c == '4' or c == '5' or c == '6' or c == '7' or c == '8' or c == '9') then + if #self.tmp and ((self.cursor == 1 and c == '-') or (c >= '0' and c <= '9')) then table.insert(self.tmp, self.cursor, c) self.cursor = self.cursor + 1 self.scroll = util.scroll(self.cursor, self.scroll, self.max_display) @@ -65,6 +65,7 @@ function _M:generate() end function _M:updateText(v) + self.first = false local old = self.number if not v then self.number = self.tmp and tonumber(table.concat(self.tmp)) or 0 -- GitLab