From 62a0940d013c5a38adb4a6043f63669ca5e01dc4 Mon Sep 17 00:00:00 2001 From: "yukawa@chromium.org" Date: Fri, 7 Feb 2014 09:16:23 +0000 Subject: Revert "Revert 249234 "Use MessagePumpDispatcher instead of MessageFilter"" This reverts commit 33c0f57d77e38a009034fb7d0e905755d9620035 with a trivial modification to corp with a recent refactoring committed as r249105. BUG=330735, 319122 Review URL: https://codereview.chromium.org/143503004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249650 0039d316-1c4b-4281-b951-d872f2087c98 --- .../service/win/cloud_print_service_config.cc | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'cloud_print') diff --git a/cloud_print/service/win/cloud_print_service_config.cc b/cloud_print/service/win/cloud_print_service_config.cc index d622e64..58fcacc 100644 --- a/cloud_print/service/win/cloud_print_service_config.cc +++ b/cloud_print/service/win/cloud_print_service_config.cc @@ -11,6 +11,8 @@ #include "base/command_line.h" #include "base/file_util.h" #include "base/message_loop/message_loop.h" +#include "base/message_loop/message_pump_dispatcher.h" +#include "base/run_loop.h" #include "base/strings/string16.h" #include "base/threading/thread.h" #include "chrome/common/chrome_constants.h" @@ -29,15 +31,19 @@ class SetupDialog : public base::RefCounted, public ATL::CDialogImpl { public: // Enables accelerators. - class MessageFilter : public base::MessageLoopForUI::MessageFilter { + class Dispatcher : public base::MessagePumpDispatcher { public: - explicit MessageFilter(SetupDialog* dialog) : dialog_(dialog){} - virtual ~MessageFilter() {}; + explicit Dispatcher(SetupDialog* dialog) : dialog_(dialog) {} + virtual ~Dispatcher() {}; - // MessageLoopForUI::MessageFilter - virtual bool ProcessMessage(const MSG& msg) OVERRIDE { + // MessagePumpDispatcher: + virtual bool Dispatch(const MSG& msg) OVERRIDE { MSG msg2 = msg; - return dialog_->IsDialogMessage(&msg2) != FALSE; + if (!dialog_->IsDialogMessage(&msg2)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + return true; } private: @@ -444,10 +450,8 @@ int WINAPI WinMain(__in HINSTANCE hInstance, scoped_refptr dialog(new SetupDialog()); dialog->Create(NULL); dialog->ShowWindow(SW_SHOW); - scoped_ptr filter( - new SetupDialog::MessageFilter(dialog)); - loop.SetMessageFilter(filter.Pass()); - - loop.Run(); + SetupDialog::Dispatcher dispatcher(dialog); + base::RunLoop run_loop(&dispatcher); + run_loop.Run(); return 0; } -- cgit v1.1