diff options
author | yukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-06 02:33:04 +0000 |
---|---|---|
committer | yukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-06 02:33:04 +0000 |
commit | 53e0e7605932515fa542435e729a24edfdf968d7 (patch) | |
tree | 82e94605809504ba1b638fd04d81e2a63d307f0e /cloud_print | |
parent | e2ff17eb179d87812530630f68cd2f7ec3175c85 (diff) | |
download | chromium_src-53e0e7605932515fa542435e729a24edfdf968d7.zip chromium_src-53e0e7605932515fa542435e729a24edfdf968d7.tar.gz chromium_src-53e0e7605932515fa542435e729a24edfdf968d7.tar.bz2 |
Use MessagePumpDispatcher instead of MessageFilter
This is a preparation to remove base::MessageLoopForUI::MessageFilter.
BUG=330735, 319122
TEST=done by manually executing cloud_print_service_config.exe
Review URL: https://codereview.chromium.org/152033005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cloud_print')
-rw-r--r-- | cloud_print/service/win/cloud_print_service_config.cc | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/cloud_print/service/win/cloud_print_service_config.cc b/cloud_print/service/win/cloud_print_service_config.cc index d622e64..d19e256 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<SetupDialog>, public ATL::CDialogImpl<SetupDialog> { 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,9 @@ int WINAPI WinMain(__in HINSTANCE hInstance, scoped_refptr<SetupDialog> dialog(new SetupDialog()); dialog->Create(NULL); dialog->ShowWindow(SW_SHOW); - scoped_ptr<SetupDialog::MessageFilter> filter( - new SetupDialog::MessageFilter(dialog)); - loop.SetMessageFilter(filter.Pass()); - - loop.Run(); + SetupDialog::Dispatcher dispatcher(dialog); + base::RunLoop run_loop; + run_loop.set_dispatcher(&dispatcher); + run_loop.Run(); return 0; } |