Chromium Code Reviews| Index: chrome/browser/ui/views/chrome_views_delegate.cc |
| diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc |
| index a3d6eaf2c209e3998b0fc07d87f3a4a7a81d1b39..3c9a17b579041090a138647595df39bbd3dbe21e 100644 |
| --- a/chrome/browser/ui/views/chrome_views_delegate.cc |
| +++ b/chrome/browser/ui/views/chrome_views_delegate.cc |
| @@ -174,21 +174,6 @@ views::NonClientFrameView* ChromeViewsDelegate::CreateDefaultNonClientFrameView( |
| return NULL; |
| } |
| -bool ChromeViewsDelegate::UseTransparentWindows() const { |
| -#if defined(USE_ASH) |
| - // TODO(scottmg): http://crbug.com/133312. This needs context to determine |
| - // if it's desktop or ash. |
| -#if defined(OS_CHROMEOS) |
| - return true; |
| -#else |
| - NOTIMPLEMENTED(); |
| - return false; |
| -#endif |
| -#else |
| - return false; |
| -#endif |
| -} |
| - |
| void ChromeViewsDelegate::AddRef() { |
| g_browser_process->AddRefModule(); |
| } |
| @@ -206,6 +191,33 @@ content::WebContents* ChromeViewsDelegate::CreateWebContents( |
| void ChromeViewsDelegate::OnBeforeWidgetInit( |
| views::Widget::InitParams* params, |
| views::internal::NativeWidgetDelegate* delegate) { |
| + // We would need to determine opacity if it's not already specified. |
|
sky
2013/12/12 23:58:14
You're making a method that is already unreadable
Shrikant Kelkar
2013/12/17 07:06:21
Done.
|
| + if (params->opacity == views::Widget::InitParams::INFER_OPACITY) { |
| + if (params->type != views::Widget::InitParams::TYPE_WINDOW && |
| + params->type != views::Widget::InitParams::TYPE_PANEL) { |
| + // All other windows except TYPE_WINDOW AND TYPE_PANEL should be |
| + // opaque. |
| + params->opacity = views::Widget::InitParams::OPAQUE_WINDOW; |
| + } else { |
| +#if defined(USE_ASH) && defined(OS_CHROMEOS) |
| + // For ChromeOS we always want transparent windows. |
| + params->opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| +#elif defined(OS_WIN) && defined(USE_AURA) |
| + // We want translucent windows when either we are in ASH or we are |
| + // a top level window which is not of type TYPE_WINDOW. |
| + if (chrome::IsNativeViewInAsh(params->context) || |
| + (params->top_level && params->type != |
| + views::Widget::InitParams::TYPE_WINDOW)) |
| + params->opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| + else |
| + params->opacity = views::Widget::InitParams::OPAQUE_WINDOW; |
| +#else |
| + // For everything else we want opaque windows. |
| + params->opacity = views::Widget::InitParams::OPAQUE_WINDOW; |
| +#endif |
| + } |
| + } |
| + |
| // If we already have a native_widget, we don't have to try to come |
| // up with one. |
| if (params->native_widget) |