only update neccessary screen regions when typing with virtual keyboard

pull/1079/head
chrox 10 years ago
parent 3a1fe689e2
commit a766ec51ae

@ -95,27 +95,47 @@ function VirtualKey:init()
end
end
function VirtualKey:update_keyboard()
UIManager.update_regions_func = function()
DEBUG("update key region", self[1].dimen)
return {self[1].dimen}
end
UIManager:setDirty(self.keyboard, "partial")
end
function VirtualKey:update_keyboard_inputbox()
local inputbox = self.keyboard.inputbox
UIManager.update_regions_func = function()
DEBUG("update keyboard and inputbox", self[1].dimen, inputbox.dimen)
return {self[1].dimen, inputbox.dimen}
end
UIManager:setDirty(inputbox, "partial")
UIManager:setDirty(self.keyboard, "partial")
end
function VirtualKey:onTapSelect()
self[1].invert = true
self:update_keyboard_inputbox()
if self.callback then
self.callback()
end
UIManager:scheduleIn(0.02, function() self:invert(false) end)
UIManager:scheduleIn(0.2, function() self:invert(false) end)
return true
end
function VirtualKey:onHoldSelect()
self[1].invert = true
self:update_keyboard_inputbox()
if self.hold_callback then
self.hold_callback()
end
UIManager:scheduleIn(0.5, function() self:invert(false) end)
UIManager:scheduleIn(0.2, function() self:invert(false) end)
return true
end
function VirtualKey:invert(invert)
self[1].invert = invert
UIManager:setDirty(self.keyboard, "partial")
self:update_keyboard()
end
local VirtualKeyboard = InputContainer:new{
@ -298,28 +318,23 @@ function VirtualKeyboard:setLayout(key)
if self.utf8mode then self.umlautmode = false end
end
self:initLayout()
UIManager.update_regions_func = nil
UIManager:setDirty(self, "partial")
end
function VirtualKeyboard:addChar(key)
DEBUG("add char", key)
self.inputbox:addChar(key)
UIManager:setDirty(self, "partial")
UIManager:setDirty(self.inputbox, "partial")
end
function VirtualKeyboard:delChar()
DEBUG("delete char")
self.inputbox:delChar()
UIManager:setDirty(self, "partial")
UIManager:setDirty(self.inputbox, "partial")
end
function VirtualKeyboard:clear()
DEBUG("clear input")
self.inputbox:clear()
UIManager:setDirty(self, "partial")
UIManager:setDirty(self.inputbox, "partial")
end
return VirtualKeyboard

Loading…
Cancel
Save