Chromium Code Reviews| Index: chrome/browser/ui/views/profiles/user_manager_view.cc |
| diff --git a/chrome/browser/ui/views/profiles/user_manager_view.cc b/chrome/browser/ui/views/profiles/user_manager_view.cc |
| index c950faae11188aaaee60739f513bea5ed3e16bbe..d8a447f31f6473020f11645464345d8b7aef2cf5 100644 |
| --- a/chrome/browser/ui/views/profiles/user_manager_view.cc |
| +++ b/chrome/browser/ui/views/profiles/user_manager_view.cc |
| @@ -20,6 +20,7 @@ |
| #include "ui/views/layout/fill_layout.h" |
| #include "ui/views/view.h" |
| #include "ui/views/widget/widget.h" |
| +#include "ui/views/window/dialog_client_view.h" |
| #if defined(OS_WIN) |
| #include "chrome/browser/shell_integration.h" |
| @@ -105,10 +106,14 @@ void UserManagerView::OnGuestProfileCreated( |
| void UserManagerView::Init(Profile* guest_profile, const GURL& url) { |
| web_view_ = new views::WebView(guest_profile); |
| - SetLayoutManager(new views::FillLayout); |
| + web_view_->set_allow_accelerators(true); |
| AddChildView(web_view_); |
| + SetLayoutManager(new views::FillLayout); |
| + AddAccelerator(ui::Accelerator(ui::VKEY_W, ui::EF_CONTROL_DOWN)); |
| DialogDelegate::CreateDialogWidget(this, NULL, NULL); |
| + GetDialogClientView()->RemoveAccelerator( |
|
msw
2014/07/09 17:07:03
nit: add a comment explaining why Esc shouldn't cl
noms (inactive)
2014/07/09 17:15:09
Done.
|
| + ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE)); |
| #if defined(OS_WIN) |
| // Set the app id for the task manager to the app id of its parent |
| @@ -123,6 +128,13 @@ void UserManagerView::Init(Profile* guest_profile, const GURL& url) { |
| web_view_->RequestFocus(); |
| } |
| +bool UserManagerView::AcceleratorPressed(const ui::Accelerator& accelerator) { |
| + DCHECK_EQ(ui::VKEY_W, accelerator.key_code()); |
| + DCHECK_EQ(ui::EF_CONTROL_DOWN, accelerator.modifiers()); |
| + GetWidget()->Close(); |
| + return true; |
| +} |
| + |
| gfx::Size UserManagerView::GetPreferredSize() const { |
| return gfx::Size(kWindowWidth, kWindowHeight); |
| } |