From 4d8709e47afc2eb8b4e46ced2747b662a849da29 Mon Sep 17 00:00:00 2001 From: dam Date: Fri, 14 Jan 2022 01:11:38 +0000 Subject: Fix PointerInputSensor. Simplify TouchItemList and TouchVerticalContainer. --- touch_item_list/touch_item_list.gd | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) (limited to 'touch_item_list/touch_item_list.gd') diff --git a/touch_item_list/touch_item_list.gd b/touch_item_list/touch_item_list.gd index 0534bb2..07d8f30 100644 --- a/touch_item_list/touch_item_list.gd +++ b/touch_item_list/touch_item_list.gd @@ -27,6 +27,7 @@ func _process(delta: float): func pointer_input_on_press_handler(pointer: PointerInputSensor.PointerInputData): is_pointer_dragging = true + grab_focus() func pointer_input_on_drag_handler(pointer: PointerInputSensor.PointerInputData): @@ -40,29 +41,13 @@ func pointer_input_on_end_drag_handler(pointer: PointerInputSensor.PointerInputD func pointer_input_on_click_handler(pointer: PointerInputSensor.PointerInputData): - var target := self - var position := target.get_global_mouse_position() - target.rect_global_position - - var event_touch := InputEventScreenTouch.new() - event_touch.index = 0 - event_touch.position = position - - var event_mouse := InputEventMouseButton.new() - event_mouse.button_index = BUTTON_LEFT - event_mouse.button_mask = BUTTON_MASK_LEFT - event_mouse.position = position - - event_mouse.pressed = true - event_touch.pressed = true - target._gui_input(event_mouse) - target._gui_input(event_touch) - - target.grab_focus() - - event_mouse.pressed = false - event_touch.pressed = false - target._gui_input(event_mouse) - target._gui_input(event_touch) + var selected_idx := get_item_at_position(pointer.current_position - rect_global_position, true) + if selected_idx >= 0: + select(selected_idx) + emit_signal("item_selected", selected_idx) + else: + unselect_all() + emit_signal("nothing_selected") func pointer_input_on_scroll_handler(pointer: PointerInputSensor.PointerInputData): -- cgit v1.2.3