diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 06:18:39 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 06:18:39 +0000 |
commit | 9fdaa60e2c54d1e70dbc92297ef200d2dc61f4a6 (patch) | |
tree | 0a7ca3a188c192fe2add00f032d7220047a7afeb | |
parent | 9c871e2e2466d527cbe02039b8420208dbb7d780 (diff) | |
download | chromium_src-9fdaa60e2c54d1e70dbc92297ef200d2dc61f4a6.zip chromium_src-9fdaa60e2c54d1e70dbc92297ef200d2dc61f4a6.tar.gz chromium_src-9fdaa60e2c54d1e70dbc92297ef200d2dc61f4a6.tar.bz2 |
Change status widget type to TYPE_WINDOW_FRAMELESS.
R=nkostylev@chromium.org
BUG=104192
TEST=Try to tab to status area on an aura build.
Review URL: http://codereview.chromium.org/9185002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118255 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/status_area/status_area_view.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/webui_login_view.cc | 10 | ||||
-rw-r--r-- | chrome/browser/ui/views/aura/status_area_host_aura.cc | 3 | ||||
-rw-r--r-- | ui/views/widget/native_widget_aura.cc | 6 |
4 files changed, 11 insertions, 15 deletions
diff --git a/ash/status_area/status_area_view.cc b/ash/status_area/status_area_view.cc index c98cf9eb..61211f2 100644 --- a/ash/status_area/status_area_view.cc +++ b/ash/status_area/status_area_view.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -35,12 +35,13 @@ void StatusAreaView::OnPaint(gfx::Canvas* canvas) { ASH_EXPORT views::Widget* CreateStatusArea() { StatusAreaView* status_area_view = new StatusAreaView; views::Widget* widget = new views::Widget; - views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); gfx::Size ps = status_area_view->GetPreferredSize(); params.bounds = gfx::Rect(0, 0, ps.width(), ps.height()); + params.delegate = status_area_view; params.parent = Shell::GetInstance()->GetContainer( ash::internal::kShellWindowId_StatusContainer); - params.delegate = status_area_view; params.transparent = true; widget->Init(params); widget->SetContentsView(status_area_view); diff --git a/chrome/browser/chromeos/login/webui_login_view.cc b/chrome/browser/chromeos/login/webui_login_view.cc index 7b9e10f..9dc49a8 100644 --- a/chrome/browser/chromeos/login/webui_login_view.cc +++ b/chrome/browser/chromeos/login/webui_login_view.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -389,13 +389,6 @@ bool WebUILoginView::IsPopupOrPanel(const WebContents* source) const { } bool WebUILoginView::TakeFocus(bool reverse) { -#if defined(USE_AURA) - // With Aura StatusArea widget is TYPE_CONTROL thus not considered top level - // and doesn't have focus manager (see Widget::is_top_level() comment). - // TODO(nkostylev): Make status area accessible on Aura. - // http://crbug.com/108166 - ReturnFocus(reverse); -#else if (status_area_ && status_area_->visible()) { // Forward the focus to the status area. base::Callback<void(bool)> return_focus_cb = @@ -403,7 +396,6 @@ bool WebUILoginView::TakeFocus(bool reverse) { status_area_->TakeFocus(reverse, return_focus_cb); status_area_->GetWidget()->Activate(); } -#endif return true; } diff --git a/chrome/browser/ui/views/aura/status_area_host_aura.cc b/chrome/browser/ui/views/aura/status_area_host_aura.cc index ec0edcb..5c79d97 100644 --- a/chrome/browser/ui/views/aura/status_area_host_aura.cc +++ b/chrome/browser/ui/views/aura/status_area_host_aura.cc @@ -92,7 +92,8 @@ views::Widget* StatusAreaHostAura::CreateStatusArea() { // Create widget to hold status area view. status_area_widget_ = new views::Widget; - views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); gfx::Size ps = status_area_view_->GetPreferredSize(); params.bounds = gfx::Rect(0, 0, ps.width(), ps.height()); params.parent = status_window; diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc index 7c637df..9afafac 100644 --- a/ui/views/widget/native_widget_aura.cc +++ b/ui/views/widget/native_widget_aura.cc @@ -180,11 +180,13 @@ void NativeWidgetAura::InitNativeWidget(const Widget::InitParams& params) { // Set up the transient child before the window is added. This way the // LayoutManager knows the window has a transient parent. gfx::NativeView parent = params.GetParent(); - if (parent) + if (parent && parent->type() != aura::client::WINDOW_TYPE_UNKNOWN) { parent->AddTransientChild(window_); + parent = NULL; + } // SetAlwaysOnTop before SetParent so that always-on-top container is used. SetAlwaysOnTop(params.keep_on_top); - window_->SetParent(NULL); + window_->SetParent(parent); } window_->set_ignore_events(!params.accept_events); // TODO(beng): do this some other way. |