Index: base/message_pump_glib.cc |
diff --git a/base/message_pump_glib.cc b/base/message_pump_glib.cc |
index e85a712aae08509b95839a2a87d7080b5dd9bbab..ad6d17700f3c4921a3f74f6f1851baf505109bb6 100644 |
--- a/base/message_pump_glib.cc |
+++ b/base/message_pump_glib.cc |
@@ -207,8 +207,7 @@ void MessagePumpForUI::RunWithDispatcher(Delegate* delegate, |
// Don't block if we think we have more work to do. |
bool block = !more_work_is_plausible; |
- // g_main_context_iteration returns true if events have been dispatched. |
- more_work_is_plausible = g_main_context_iteration(context_, block); |
+ more_work_is_plausible = RunOnce(context_, block); |
if (state_->should_quit) |
break; |
@@ -232,6 +231,11 @@ void MessagePumpForUI::RunWithDispatcher(Delegate* delegate, |
state_ = previous_state; |
} |
+bool MessagePumpForUI::RunOnce(GMainContext* context, bool block) { |
+ // g_main_context_iteration returns true if events have been dispatched. |
+ return g_main_context_iteration(context, block); |
+} |
+ |
// Return the timeout we want passed to poll. |
int MessagePumpForUI::HandlePrepare() { |
// We know we have work, but we haven't called HandleDispatch yet. Don't let |
@@ -332,19 +336,21 @@ void MessagePumpForUI::ScheduleDelayedWork(const Time& delayed_work_time) { |
ScheduleWork(); |
} |
-// static |
-void MessagePumpForUI::EventDispatcher(GdkEvent* event, gpointer data) { |
- MessagePumpForUI* message_pump = reinterpret_cast<MessagePumpForUI*>(data); |
- |
- message_pump->WillProcessEvent(event); |
- if (message_pump->state_ && // state_ may be null during tests. |
- message_pump->state_->dispatcher) { |
- if (!message_pump->state_->dispatcher->Dispatch(event)) |
- message_pump->state_->should_quit = true; |
+void MessagePumpForUI::DispatchEvents(GdkEvent* event) { |
+ WillProcessEvent(event); |
+ if (state_ && state_->dispatcher) { // state_ may be null during tests. |
+ if (!state_->dispatcher->Dispatch(event)) |
+ state_->should_quit = true; |
} else { |
gtk_main_do_event(event); |
} |
- message_pump->DidProcessEvent(event); |
+ DidProcessEvent(event); |
+} |
+ |
+// static |
+void MessagePumpForUI::EventDispatcher(GdkEvent* event, gpointer data) { |
+ MessagePumpForUI* message_pump = reinterpret_cast<MessagePumpForUI*>(data); |
+ message_pump->DispatchEvents(event); |
} |
} // namespace base |