The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates. | Twitter

+1 vote

I'm working on a mobile game. I'm having a hard time telling apart taps from touch screen buttons from regular ones from the remaining screen.

Is there a way to prevent event propagation for touch events for filter them somehow?

I tried setting a custom action name on the TouchScreenButton nodes and tried to filter them with event.is_action to no avail.

in Engine by (79 points)

2 Answers

0 votes

I'd go the easy route, creating two different states, deactivating the game logic while the ui is on... or at least deactivating key objects that could get in the way.

by (234 points)

This won't work because the ui is always visible.

0 votes

You can set input event as "handled" so it doesn't trigger anything else by calling


but it seems that is not working well on android.. I disable input on other nodes when I detect a touch on UI.

by (530 points)

I opened this issue on github. Would help if people interested wold support me there so we can have this solved.

This PR is going to fix the problem:
I just did the testing, works as advertised.. But it took me more than two hours to figure out the Android template compiling .. But now it works, if someone want to try the android_template, maybe I will post it for dl somewhere..

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.