summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-19 06:18:39 +0000
committerzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-19 06:18:39 +0000
commit9fdaa60e2c54d1e70dbc92297ef200d2dc61f4a6 (patch)
tree0a7ca3a188c192fe2add00f032d7220047a7afeb
parent9c871e2e2466d527cbe02039b8420208dbb7d780 (diff)
downloadchromium_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.cc7
-rw-r--r--chrome/browser/chromeos/login/webui_login_view.cc10
-rw-r--r--chrome/browser/ui/views/aura/status_area_host_aura.cc3
-rw-r--r--ui/views/widget/native_widget_aura.cc6
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.