diff options
author | darin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-06 21:45:54 +0000 |
---|---|---|
committer | darin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-06 21:45:54 +0000 |
commit | 3e5067f1c22a11f1a2da4d38e8c2815fc3b2fdaf (patch) | |
tree | 43d5ad1f2d417144752ee0410149204b6fc69996 | |
parent | b0bbef8e993290d45deb1c8486c38417d0c6d496 (diff) | |
download | chromium_src-3e5067f1c22a11f1a2da4d38e8c2815fc3b2fdaf.zip chromium_src-3e5067f1c22a11f1a2da4d38e8c2815fc3b2fdaf.tar.gz chromium_src-3e5067f1c22a11f1a2da4d38e8c2815fc3b2fdaf.tar.bz2 |
Apparently, our WndProc can get called for other HWNDs :(
TBR=brettw
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@461 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/message_loop.cc | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/base/message_loop.cc b/base/message_loop.cc index 37b6f36..14fa5d9 100644 --- a/base/message_loop.cc +++ b/base/message_loop.cc @@ -396,23 +396,25 @@ LRESULT CALLBACK MessageLoop::WndProcThunk( LRESULT MessageLoop::WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { - DCHECK(hwnd == message_hwnd_); - switch (message) { - case kMsgPumpATask: { - ProcessPumpReplacementMessage(); // Avoid starving paint and timer. - if (!nestable_tasks_allowed_) + if (hwnd == message_hwnd_) { + switch (message) { + case kMsgPumpATask: { + ProcessPumpReplacementMessage(); // Avoid starving paint and timer. + if (!nestable_tasks_allowed_) + return 0; + PumpATaskDuringWndProc(); return 0; - PumpATaskDuringWndProc(); - return 0; - } + } - case kMsgQuit: { - // TODO(jar): bug 1300541 The following assert should be used, but - // currently too much code actually triggers the assert, especially in - // tests :-(. - //CHECK(!quit_received_); // Discarding a second quit will cause a hang. - quit_received_ = true; - return 0; + case kMsgQuit: { + // TODO(jar): bug 1300541 The following assert should be used, but + // currently too much code actually triggers the assert, especially in + // tests :-(. + // Discarding a second quit will cause a hang. + //CHECK(!quit_received_); + quit_received_ = true; + return 0; + } } } return ::DefWindowProc(hwnd, message, wparam, lparam); |