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