CodeNoob is on the right path, but I think you may want to structure things differently.
You can use an InputMultiplexer
to install both a global GestureListener
and your stage's listener:
GestureDetector gd = ...
Stage myStage = ...
InputMultiplexer im = new InputMultiplexer(gd, myStage); // Order matters here!
Gdx.input.setInputProcessor(im);
The other thing to watch out for is the return values on all the boolean
methods in your input listeners. Any one that returns "true" will mark the event as "handled" and the multiplexer will not pass the event on to its peer. Also, the order of the input processors in the multiplexer makes a difference (as it may hide events from the underlying inputProcessor). So, the auto-generated stubs returning 'true' in your example, will "eat" a bunch of events. If this handler is first in the multiplexer, that will hide events from the stage.