You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Why: once a listener calls stop_propagation(), the event instance stays stopped. Dispatching it again skips every listener after the first one, so an event instance can't be reused across dispatches.
What: an opt-in Event.reset() that clears propagation_stopped. Default behaviour unchanged. Implementation: #23.
Acceptance criteria
Event.reset() clears propagation_stopped; a reset event dispatched again reaches every listener.
Without reset(), re-dispatching a stopped event behaves as today.
docs/propagation.rst documents reusing an event with reset().
CHANGELOG.rst lists Event.reset() under Unreleased / Added.
For 2.x this is addressed with a non-breaking, opt-in Event.reset() that clears propagation_stopped so the same instance can be dispatched again. PR #23.
Resetting propagation at the start of every dispatch (reusable by default) is a behaviour change, so it is tracked separately for 3.0 in #24.
Activity
feat: add Event.reset() to allow re-dispatching an event
hartym commentedon Jun 5, 2026
For 2.x this is addressed with a non-breaking, opt-in
Event.reset()that clearspropagation_stoppedso the same instance can be dispatched again. PR #23.Resetting propagation at the start of every dispatch (reusable by default) is a behaviour change, so it is tracked separately for 3.0 in #24.