diff options
Diffstat (limited to 'base')
-rw-r--r-- | base/message_pump_x.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/base/message_pump_x.cc b/base/message_pump_x.cc index 3b1ed3d..8a253df 100644 --- a/base/message_pump_x.cc +++ b/base/message_pump_x.cc @@ -183,6 +183,8 @@ bool MessagePumpX::RunOnce(GMainContext* context, bool block) { } bool MessagePumpX::WillProcessXEvent(XEvent* xevent) { + if (!observers().might_have_observers()) + return false; ObserverListBase<MessagePumpObserver>::Iterator it(observers()); MessagePumpObserver* obs; while ((obs = it.GetNext()) != NULL) { @@ -193,11 +195,7 @@ bool MessagePumpX::WillProcessXEvent(XEvent* xevent) { } void MessagePumpX::DidProcessXEvent(XEvent* xevent) { - ObserverListBase<MessagePumpObserver>::Iterator it(observers()); - MessagePumpObserver* obs; - while ((obs = it.GetNext()) != NULL) { - obs->DidProcessEvent(xevent); - } + FOR_EACH_OBSERVER(MessagePumpObserver, observers(), DidProcessEvent(xevent)); } } // namespace base |