@@ -868,13 +868,16 @@ function love.joystickhat(joystick, hat, direction)
868
868
end
869
869
end
870
870
871
+ local mouse_buttons_pressed = {}
872
+
871
873
--- @param x number
872
874
--- @param y number
873
875
--- @param button integer
874
876
--- @param istouch boolean
875
877
--- @param presses integer
876
878
function love .mousepressed (x , y , button , istouch , presses )
877
879
if mouse_idle > 2 then return end
880
+ mouse_buttons_pressed [button ] = true
878
881
local screen_x , screen_y = love .graphics .getDimensions ()
879
882
local scale_factor = math.min (screen_x / 640 , screen_y / 480 )
880
883
local local_x , local_y = (x - (screen_x - scale_factor * 640 ) / 2 )/ scale_factor , (y - (screen_y - scale_factor * 480 ) / 2 )/ scale_factor
887
890
--- @param istouch boolean
888
891
--- @param presses integer
889
892
function love .mousereleased (x , y , button , istouch , presses )
890
- if mouse_idle > 2 then return end
893
+ if mouse_idle > 2 and not mouse_buttons_pressed [button ] then return end
894
+ mouse_buttons_pressed [button ] = false
891
895
local screen_x , screen_y = love .graphics .getDimensions ()
892
896
local scale_factor = math.min (screen_x / 640 , screen_y / 480 )
893
897
local local_x , local_y = (x - (screen_x - scale_factor * 640 ) / 2 )/ scale_factor , (y - (screen_y - scale_factor * 480 ) / 2 )/ scale_factor
0 commit comments