From a7cfc659288c7dbd9ffbe9b214f9980e6dc429ee Mon Sep 17 00:00:00 2001 From: zwim <36999612+zwim@users.noreply.github.com> Date: Fri, 29 Oct 2021 12:59:03 +0200 Subject: [PATCH] Fix crash when entering a digit on the SDL keyboard (#8388) Fixes #8387. --- frontend/device/sdl/device.lua | 2 +- frontend/ui/widget/inputtext.lua | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/device/sdl/device.lua b/frontend/device/sdl/device.lua index 0799c5cc1..e98dcef0f 100644 --- a/frontend/device/sdl/device.lua +++ b/frontend/device/sdl/device.lua @@ -264,7 +264,7 @@ function Device:init() self.window.left = ev.value.data1 self.window.top = ev.value.data2 elseif ev.code == SDL_TEXTINPUT then - UIManager:sendEvent(Event:new("TextInput", ev.value)) + UIManager:sendEvent(Event:new("TextInput", tostring(ev.value))) end end, hasClipboardText = function() diff --git a/frontend/ui/widget/inputtext.lua b/frontend/ui/widget/inputtext.lua index 48448a99b..71543b9c6 100644 --- a/frontend/ui/widget/inputtext.lua +++ b/frontend/ui/widget/inputtext.lua @@ -13,6 +13,7 @@ local TextBoxWidget = require("ui/widget/textboxwidget") local UIManager = require("ui/uimanager") local Utf8Proc = require("ffi/utf8proc") local VerticalGroup = require("ui/widget/verticalgroup") +local dbg = require("dbg") local util = require("util") local _ = require("gettext") local Screen = Device.screen @@ -728,6 +729,11 @@ function InputText:addChars(chars) self.charpos = self.charpos + #util.splitToChars(chars) self:initTextBox(table.concat(self.charlist), true) end +dbg:guard(InputText, "addChars", + function(self, chars) + assert(type(chars) == "string", + "Wrong chars value type (expected string)!") + end) function InputText:delChar() if self.readonly or not self:isTextEditable(true) then