diff options
| author | dam <dam@gudinoff> | 2022-01-14 01:11:38 +0000 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2022-01-14 01:11:38 +0000 |
| commit | 4d8709e47afc2eb8b4e46ced2747b662a849da29 (patch) | |
| tree | a579a48682cb52210cf1a72ceeb47bb10569137a /touch_item_list/touch_item_list.gd | |
| parent | c9724e10f4a1e008d97aa53d7d2cf9a987c011c8 (diff) | |
| download | surgery-log-4d8709e47afc2eb8b4e46ced2747b662a849da29.tar.zst surgery-log-4d8709e47afc2eb8b4e46ced2747b662a849da29.zip | |
Fix PointerInputSensor. Simplify TouchItemList and TouchVerticalContainer.
Diffstat (limited to 'touch_item_list/touch_item_list.gd')
| -rw-r--r-- | touch_item_list/touch_item_list.gd | 31 |
1 files changed, 8 insertions, 23 deletions
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): |
