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

Side by Side Diff: chrome/browser/views/browser_bubble_win.cc

Issue 459005: Make sure we don't dismiss extension popups when the focus... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "chrome/browser/views/browser_bubble.h" 5 #include "chrome/browser/views/browser_bubble.h"
6 6
7 #include "app/l10n_util_win.h" 7 #include "app/l10n_util_win.h"
8 #include "chrome/browser/views/frame/browser_view.h" 8 #include "chrome/browser/views/frame/browser_view.h"
9 #include "views/widget/root_view.h" 9 #include "views/widget/root_view.h"
10 #include "views/widget/widget_win.h" 10 #include "views/widget/widget_win.h"
(...skipping 14 matching lines...) Expand all
25 views::WidgetWin::Show(); 25 views::WidgetWin::Show();
26 } 26 }
27 27
28 void Close() { 28 void Close() {
29 if (closed_) 29 if (closed_)
30 return; 30 return;
31 closed_ = true; 31 closed_ = true;
32 if (IsActive()) { 32 if (IsActive()) {
33 BrowserBubble::Delegate* delegate = bubble_->delegate(); 33 BrowserBubble::Delegate* delegate = bubble_->delegate();
34 if (delegate) 34 if (delegate)
35 delegate->BubbleLostFocus(bubble_); 35 delegate->BubbleLostFocus(bubble_, NULL);
36 } 36 }
37 views::WidgetWin::Close(); 37 views::WidgetWin::Close();
38 } 38 }
39 39
40 void Hide() { 40 void Hide() {
41 if (IsActive()) { 41 if (IsActive()) {
42 BrowserBubble::Delegate* delegate = bubble_->delegate(); 42 BrowserBubble::Delegate* delegate = bubble_->delegate();
43 if (delegate) 43 if (delegate)
44 delegate->BubbleLostFocus(bubble_); 44 delegate->BubbleLostFocus(bubble_, NULL);
45 } 45 }
46 views::WidgetWin::Hide(); 46 views::WidgetWin::Hide();
47 } 47 }
48 48
49 void OnActivate(UINT action, BOOL minimized, HWND window) { 49 void OnActivate(UINT action, BOOL minimized, HWND window) {
50 BrowserBubble::Delegate* delegate = bubble_->delegate(); 50 BrowserBubble::Delegate* delegate = bubble_->delegate();
51 if (!delegate) { 51 if (!delegate) {
52 if (action == WA_INACTIVE && !closed_) { 52 if (action == WA_INACTIVE && !closed_) {
53 bubble_->DetachFromBrowser(); 53 bubble_->DetachFromBrowser();
54 delete bubble_; 54 delete bubble_;
55 } 55 }
56 return; 56 return;
57 } 57 }
58 58
59 if (action == WA_INACTIVE && !closed_) { 59 if (action == WA_INACTIVE && !closed_) {
60 delegate->BubbleLostFocus(bubble_); 60 delegate->BubbleLostFocus(bubble_, window);
61 } 61 }
62 } 62 }
63 63
64 virtual void OnSetFocus(HWND focused_window) { 64 virtual void OnSetFocus(HWND focused_window) {
65 BrowserBubble::Delegate* delegate = bubble_->delegate(); 65 BrowserBubble::Delegate* delegate = bubble_->delegate();
66 if (delegate) 66 if (delegate)
67 delegate->BubbleGotFocus(bubble_); 67 delegate->BubbleGotFocus(bubble_);
68 } 68 }
69 69
70 private: 70 private:
(...skipping 26 matching lines...) Expand all
97 visible_ = true; 97 visible_ = true;
98 } 98 }
99 99
100 void BrowserBubble::Hide() { 100 void BrowserBubble::Hide() {
101 if (!visible_) 101 if (!visible_)
102 return; 102 return;
103 views::WidgetWin* pop = static_cast<views::WidgetWin*>(popup_); 103 views::WidgetWin* pop = static_cast<views::WidgetWin*>(popup_);
104 pop->Hide(); 104 pop->Hide();
105 visible_ = false; 105 visible_ = false;
106 } 106 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698