Input event not propagating past Control?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Suchaaver Chahal
:warning: Old Version Published before Godot 3 was released.

In a container Control Node, I have an regular node and then an area 2D node, like so:

- Control editor_window
    -Node2D gun
        -Area2D gun_base

Now, in a separate scene, I’ve been able to send a input_event signal from the gun_base to a script in gun (this test scene did not have the control). In this scene, however, I have a script attached to the Control. Here are the relevant parts:

func _ready():
    gun_base = get_node("gun/gun_base")
    gun_base.connect("input_event", self, "select_attachment")

func select_attachment(view, event, shape)
    print("GOT EM")

func _input_event(event):
    DO SOME STUFF, NEVER CALLS accept_event()

I can’t ever get GOT EM to print, it just never fires. What have I done wrong? I feel like any event goes to _input_event and never propagates further.

:bust_in_silhouette: Reply From: volzhs

There is an option named “Stop Mouse” in inspector when Control node is selected.
This option is mostly “On” by default which prevent to spread mouse event.
Try this option “Off”

Unfortunately, it already is off. If I’m not mistaken, if accept_event is not called, a a ray is cast into the scene and triggers the the input_event on the collision object (in this case, the Area2D object)

Suchaaver Chahal | 2016-11-19 23:02

For me, turning off “Ignore mouse” helped.

Soaku | 2017-05-06 16:43