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

Side by Side Diff: chrome/browser/ui/views/dropdown_bar_host.cc

Issue 7031053: Make Widget ownership a little clearer by expressing it in terms of an enum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/views/dropdown_bar_host.h" 5 #include "chrome/browser/ui/views/dropdown_bar_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "chrome/browser/ui/view_ids.h" 9 #include "chrome/browser/ui/view_ids.h"
10 #include "chrome/browser/ui/views/dropdown_bar_host_delegate.h" 10 #include "chrome/browser/ui/views/dropdown_bar_host_delegate.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 DropdownBarHostDelegate* delegate) { 56 DropdownBarHostDelegate* delegate) {
57 DCHECK(view); 57 DCHECK(view);
58 DCHECK(delegate); 58 DCHECK(delegate);
59 59
60 view_ = view; 60 view_ = view;
61 delegate_ = delegate; 61 delegate_ = delegate;
62 62
63 // Initialize the host. 63 // Initialize the host.
64 host_.reset(new views::Widget); 64 host_.reset(new views::Widget);
65 views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL); 65 views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL);
66 params.delete_on_destroy = false; 66 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
67 params.parent_widget = browser_view_->GetWidget(); 67 params.parent_widget = browser_view_->GetWidget();
68 host_->Init(params); 68 host_->Init(params);
69 host_->SetContentsView(view_); 69 host_->SetContentsView(view_);
70 70
71 // Start listening to focus changes, so we can register and unregister our 71 // Start listening to focus changes, so we can register and unregister our
72 // own handler for Escape. 72 // own handler for Escape.
73 focus_manager_ = 73 focus_manager_ =
74 views::FocusManager::GetFocusManagerForNativeView(host_->GetNativeView()); 74 views::FocusManager::GetFocusManagerForNativeView(host_->GetNativeView());
75 if (focus_manager_) { 75 if (focus_manager_) {
76 focus_manager_->AddFocusChangeListener(this); 76 focus_manager_->AddFocusChangeListener(this);
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 focus_manager_->RegisterAccelerator(escape, this); 332 focus_manager_->RegisterAccelerator(escape, this);
333 esc_accel_target_registered_ = true; 333 esc_accel_target_registered_ = true;
334 } 334 }
335 335
336 void DropdownBarHost::UnregisterAccelerators() { 336 void DropdownBarHost::UnregisterAccelerators() {
337 DCHECK(esc_accel_target_registered_); 337 DCHECK(esc_accel_target_registered_);
338 views::Accelerator escape(ui::VKEY_ESCAPE, false, false, false); 338 views::Accelerator escape(ui::VKEY_ESCAPE, false, false, false);
339 focus_manager_->UnregisterAccelerator(escape, this); 339 focus_manager_->UnregisterAccelerator(escape, this);
340 esc_accel_target_registered_ = false; 340 esc_accel_target_registered_ = false;
341 } 341 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/notifications/balloon_view.cc ('k') | chrome/browser/ui/views/fullscreen_exit_bubble.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698