aboutsummaryrefslogtreecommitdiff
path: root/pointer_input_sensor.gd
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-03-04 00:07:40 +0000
committerdam <dam@gudinoff>2022-03-04 00:07:40 +0000
commit79cac2d7115e31987ff205b7b726b353014dd62b (patch)
tree50ad0f8fbff58481cffb29da73b8ef2282cdf865 /pointer_input_sensor.gd
parent9296ffd6ef1f8fcc1bbb12332fdc9480ff18c68b (diff)
downloadsurgery-log-79cac2d7115e31987ff205b7b726b353014dd62b.tar.zst
surgery-log-79cac2d7115e31987ff205b7b726b353014dd62b.zip
Improved touch scroll.
Diffstat (limited to 'pointer_input_sensor.gd')
-rw-r--r--pointer_input_sensor.gd19
1 files changed, 7 insertions, 12 deletions
diff --git a/pointer_input_sensor.gd b/pointer_input_sensor.gd
index be4d158..588bb81 100644
--- a/pointer_input_sensor.gd
+++ b/pointer_input_sensor.gd
@@ -70,18 +70,19 @@ func _gui_input(event: InputEvent):
return
pointer.event = event
-# pointer.index = -1
-# pointer.scroll = 0.0
-# pointer.action = PointerInputAction.UNDEFINED
-# pointer.velocity = Vector2.ZERO
+ pointer.action = PointerInputAction.UNDEFINED
+ pointer.velocity = Vector2.ZERO
+ pointer.relative_position = Vector2.ZERO
+ pointer.scroll = 0.0
+ pointer.current_position = get_global_mouse_position()
if event is InputEventScreenTouch && (pointer.is_pressed == false || pointer.index == event.index):
var touch := event as InputEventScreenTouch
pointer.is_pressed = event.pressed
- pointer.current_position = get_global_mouse_position()
+
if pointer.is_pressed:
pointer.index = touch.index
- pointer.initial_position = get_global_mouse_position()
+ pointer.initial_position = pointer.current_position
pointer.action = PointerInputAction.ON_PRESS
emit_signal("on_press", pointer)
else:
@@ -95,14 +96,9 @@ func _gui_input(event: InputEvent):
emit_signal("on_end_drag", pointer)
pointer.index = -1
pointer.was_dragged = false
- # @DAM Maybe add this.
-# pointer.initial_position = Vector2.ZERO
-# pointer.current_position = Vector2.ZERO
-# pointer.relative_position = Vector2.ZERO
if event is InputEventScreenDrag && event.index == pointer.index:
var drag := event as InputEventScreenDrag
- pointer.current_position = get_global_mouse_position()
pointer.velocity = drag.speed
pointer.relative_position = drag.relative
if pointer.was_dragged == false && pointer.current_position.distance_to(pointer.initial_position) > drag_threshold_cm * screen_dpcm:
@@ -112,7 +108,6 @@ func _gui_input(event: InputEvent):
pointer.action = PointerInputAction.ON_DRAG
emit_signal("on_drag", pointer)
- # @DAM Clean this code please.
if event is InputEventMouseButton && event.is_pressed():
if event.button_index == BUTTON_WHEEL_UP || event.button_index == BUTTON_WHEEL_DOWN:
pointer.scroll = -1.0 if event.button_index == BUTTON_WHEEL_UP else 1.0