Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | jujumumu |
I have 2 control nodes one on top of the other both with _gui_input(event)
both mouse filters are pass so the gui input should do something then still pass it on. I want both control nodes to detect mouse movement. Is this a bug or am i dumb? If I am dumb please post a answer.
Tried it out in a minimal scene and is seems to work. Did you scale both controls to the same size and skipped the accept_event() function?
flurick | 2019-09-11 19:47
Both controls are the same size and I did skip the accept event. I think it is a bug because I did it on a minimal seem and it does not seem to work? Not sure how you got it to work.
Simple test:
-Node 2d
–Control 1
–Control 2
Control 1 script:
extends Control
func _gui_input(event):
print('1')
Control 2 script:
extends Control
func _gui_input(event):
print('2')
Then both of the filters are set to pass
jujumumu | 2019-09-11 23:00
I see. My try was with a controls as a root node and a second control as its child passing events to its parent. Looks like there are a few issues open about mouse filter, someone mentioned that events according to the docs only propagate up. So one workaround could be to use _input():
func _input(event):
if event is InputEventMouseMotion:
if get_rect().has_point(event.position):
printt(name, event)
flurick | 2019-09-12 09:37