Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: ui/views/win/hwnd_message_handler.cc

Issue 1636183003: Fix crash in the HWNDMessageHandler::HandleMouseInputForCaption function. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/views/widget/widget_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/win/hwnd_message_handler.h" 5 #include "ui/views/win/hwnd_message_handler.h"
6 6
7 #include <dwmapi.h> 7 #include <dwmapi.h>
8 #include <oleacc.h> 8 #include <oleacc.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <tchar.h> 10 #include <tchar.h>
(...skipping 2539 matching lines...) Expand 10 before | Expand all | Expand 10 after
2550 } 2550 }
2551 if (should_handle_pending_ncl_button_down) { 2551 if (should_handle_pending_ncl_button_down) {
2552 l_param = MAKELPARAM(caption_left_button_click_pos_.x(), 2552 l_param = MAKELPARAM(caption_left_button_click_pos_.x(),
2553 caption_left_button_click_pos_.y()); 2553 caption_left_button_click_pos_.y());
2554 // TODO(msw): Eliminate undesired painting, or re-evaluate this 2554 // TODO(msw): Eliminate undesired painting, or re-evaluate this
2555 // workaround. 2555 // workaround.
2556 // DefWindowProc for WM_NCLBUTTONDOWN does weird non-client painting, 2556 // DefWindowProc for WM_NCLBUTTONDOWN does weird non-client painting,
2557 // so we need to call it inside a ScopedRedrawLock. This may cause 2557 // so we need to call it inside a ScopedRedrawLock. This may cause
2558 // other negative side-effects 2558 // other negative side-effects
2559 // (ex/ stifling non-client mouse releases). 2559 // (ex/ stifling non-client mouse releases).
2560 // We may be deleted in the context of DefWindowProc. Don't refer to
2561 // any member variables after the DefWindowProc call.
2562 left_button_down_on_caption_ = false;
2563
2560 if (delegate_->IsUsingCustomFrame()) { 2564 if (delegate_->IsUsingCustomFrame()) {
2561 DefWindowProcWithRedrawLock(WM_NCLBUTTONDOWN, HTCAPTION, l_param); 2565 DefWindowProcWithRedrawLock(WM_NCLBUTTONDOWN, HTCAPTION, l_param);
2562 } else { 2566 } else {
2563 DefWindowProc(hwnd(), WM_NCLBUTTONDOWN, HTCAPTION, l_param); 2567 DefWindowProc(hwnd(), WM_NCLBUTTONDOWN, HTCAPTION, l_param);
2564 } 2568 }
2565 left_button_down_on_caption_ = false;
2566 } 2569 }
2567 break; 2570 break;
2568 } 2571 }
2569 2572
2570 case WM_NCMOUSELEAVE: 2573 case WM_NCMOUSELEAVE:
2571 break; 2574 break;
2572 2575
2573 default: 2576 default:
2574 left_button_down_on_caption_ = false; 2577 left_button_down_on_caption_ = false;
2575 break; 2578 break;
2576 } 2579 }
2577 return handled; 2580 return handled;
2578 } 2581 }
2579 2582
2580 2583
2581 } // namespace views 2584 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/widget_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698