No, your code still uses the same design, just differently.
What I mean is that you have a single event loop at high-level, and all events are dispatched from this loop to all the classes that listen to events. In other words, it's not components that pull events, it's your high-level class (Game, Window or whatever you have) that pushes them to every component that needs to process them.