修复手机端文本框响应逻辑错误
This commit is contained in:
@@ -160,6 +160,7 @@ function love.touchpressed(id,x,y)
|
||||
if SCN.swapping then return end
|
||||
if not touching then
|
||||
touching=id
|
||||
WIDGET.unFocus(true)
|
||||
love.touchmoved(id,x,y,0,0)
|
||||
end
|
||||
x,y=xOy:inverseTransformPoint(x,y)
|
||||
@@ -172,14 +173,10 @@ function love.touchmoved(_,x,y,dx,dy)
|
||||
x,y=xOy:inverseTransformPoint(x,y)
|
||||
if SCN.touchMove then SCN.touchMove(x,y,dx/SCR.k,dy/SCR.k)end
|
||||
if WIDGET.sel then
|
||||
if touching then
|
||||
WIDGET.drag(x,y,dx,dy)
|
||||
end
|
||||
if touching then WIDGET.drag(x,y,dx,dy)end
|
||||
else
|
||||
WIDGET.cursorMove(x,y)
|
||||
if not WIDGET.sel then
|
||||
touching=false
|
||||
end
|
||||
if not WIDGET.sel then touching=false end
|
||||
end
|
||||
end
|
||||
function love.touchreleased(id,x,y)
|
||||
@@ -188,8 +185,9 @@ function love.touchreleased(id,x,y)
|
||||
if id==touching then
|
||||
WIDGET.press(x,y,1)
|
||||
WIDGET.release(x,y)
|
||||
touching=false
|
||||
WIDGET.cursorMove(x,y)
|
||||
WIDGET.unFocus()
|
||||
touching=false
|
||||
end
|
||||
if SCN.touchUp then SCN.touchUp(x,y)end
|
||||
if(x-lastX)^2+(y-lastY)^2<62 then
|
||||
|
||||
@@ -1083,9 +1083,12 @@ function WIDGET.focus(W)
|
||||
kb.setTextInput(true,0,y1,1,1)
|
||||
end
|
||||
end
|
||||
function WIDGET.unFocus()
|
||||
if WIDGET.sel and WIDGET.sel.type=='inputBox'then kb.setTextInput(false)end
|
||||
WIDGET.sel=false
|
||||
function WIDGET.unFocus(force)
|
||||
local W=WIDGET.sel
|
||||
if W and(force or not W.keepFocus)then
|
||||
if W.type=='inputBox'then kb.setTextInput(false)end
|
||||
WIDGET.sel=false
|
||||
end
|
||||
end
|
||||
|
||||
function WIDGET.cursorMove(x,y)
|
||||
@@ -1110,8 +1113,8 @@ function WIDGET.drag(x,y,dx,dy)
|
||||
if not W then return end
|
||||
if W.type=='slider'or W.type=='textBox'then
|
||||
W:drag(x,y,dx,dy)
|
||||
elseif not W:isAbove(x,y)and not WIDGET.sel.keepFocus then
|
||||
WIDGET.unFocus()
|
||||
elseif not W:isAbove(x,y)then
|
||||
WIDGET.unFocus(true)
|
||||
end
|
||||
end
|
||||
function WIDGET.release(x,y)
|
||||
|
||||
Reference in New Issue
Block a user