Skip to content

InputSender does not trigger Control._get_drag_data() for drag-and-drop gestures #790

@allan-simon

Description

@allan-simon

Versions

(list all versions where you have replicated the bug)

  • Godot: 4.6 beta 1 (both headless and normal)
  • GUT: branch godot 4.6
  • OS: Linux Ubuntu 22.04

The Bug

Steps To Reproduce

  1. Copy all files from this bug_report_gut folder to your Godot project:

    • simple_drag_test.tscn - Minimal test scene
    • simple_draggable.gd - Draggable ColorRect
    • simple_slot.gd - Drop target PanelContainer
    • test_minimal_drag.gd - GUT test
  2. Ensure GUT is installed in addons/gut/

Run the Test

Headless mode:

godot --headless -d -s addons/gut/gut_cmdln.gd -gdir=res://bug_report_gut -gtest=test_minimal_drag.gd -gexit

With GUI:

godot -d -s addons/gut/gut_cmdln.gd -gdir=res://bug_report_gut -gtest=test_minimal_drag.gd -gexit
  • _get_drag_data() is never called
  • _can_drop_data() is never called
  • _drop_data() is never called
  • Item remains in original slot (Slot1)
  • No drag gesture is detected by Godot

But when running manually:

   !!! _get_drag_data CALLED !!!
   _can_drop_data called
   !!! _drop_data CALLED !!!

What else I tested :

# Approach 1: Input singleton
var sender = InputSender.new(Input)

# Approach 2: Viewport
var sender = InputSender.new(get_viewport())

# Approach 3: Control node directly
var sender = InputSender.new(control_node)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions