According to the official LibGDX wiki, capture listeners are called before "normal" listeners to give you a chance to intercept the events. (i.e. Active window cancels click on button under it)
First, during the "capture" phase an event is given to each actor from
the root down to the target actor. Only capture listeners are notified
during this phase. This gives parents a chance to intercept and
potentially cancel events before children see them. Next, during the
"normal" phase the event is given to each actor from the target up to
the root. Only normal listeners are notified during this phase. This
allows actors to handle an event themselves or let the parent have a
try at it.
To intercept an event, you must can either use
event.cancel(), which will prevent propagation but also mark the event as cancelled or use
event.stop() which will also prevent propagation but without cancelling the event.
When an event is cancelled the code that fired the actor will know and may respond accordingly. For example, if the click on a
Button is cancelled, it will avoid changing its
isChecked state. The details of what happen when an event is cancelled depends entirely on the actor or code firing the event.