diff options
author | mohsen@chromium.org <mohsen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 21:31:58 +0000 |
---|---|---|
committer | mohsen@chromium.org <mohsen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 21:31:58 +0000 |
commit | 1ac832c6e9258a68bd17c85773719225f106b3ae (patch) | |
tree | 51a45493337c4ee868b0f62911b4ac51785bc3dd /ui/views/test | |
parent | 3bdb0994b4ab7843e1c82289156761a95b4552e5 (diff) | |
download | chromium_src-1ac832c6e9258a68bd17c85773719225f106b3ae.zip chromium_src-1ac832c6e9258a68bd17c85773719225f106b3ae.tar.gz chromium_src-1ac832c6e9258a68bd17c85773719225f106b3ae.tar.bz2 |
Honor can_activate flag in ShowWindowWithState
In HWNDMessageHandler::ShowWindowWitState(), when ui::SHOW_STATE_DEFAULT
is passed as state, the window grabs activation after being shown. The
correct behavior would be to activate the widget if and only if the
can_activate flag is set. HWNDMessageHandler::Show() method already does
this since r244605.
Also, the DefaultWidgetDelegate should honor InitParams::can_activate
flag.
BUG=340736
Review URL: https://codereview.chromium.org/154783002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271102 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/test')
-rw-r--r-- | ui/views/test/test_views_delegate.cc | 15 | ||||
-rw-r--r-- | ui/views/test/test_views_delegate.h | 12 |
2 files changed, 21 insertions, 6 deletions
diff --git a/ui/views/test/test_views_delegate.cc b/ui/views/test/test_views_delegate.cc index 81f46da..0d437ea 100644 --- a/ui/views/test/test_views_delegate.cc +++ b/ui/views/test/test_views_delegate.cc @@ -6,11 +6,16 @@ #include "ui/wm/core/wm_state.h" +#if !defined(OS_CHROMEOS) +#include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" +#endif // !defined(OS_CHROMEOS) + namespace views { TestViewsDelegate::TestViewsDelegate() - : use_transparent_windows_(false) { + : use_desktop_native_widgets_(false), + use_transparent_windows_(false) { DCHECK(!ViewsDelegate::views_delegate); ViewsDelegate::views_delegate = this; #if defined(USE_AURA) @@ -23,10 +28,6 @@ TestViewsDelegate::~TestViewsDelegate() { ViewsDelegate::views_delegate = NULL; } -void TestViewsDelegate::SetUseTransparentWindows(bool transparent) { - use_transparent_windows_ = transparent; -} - void TestViewsDelegate::OnBeforeWidgetInit( Widget::InitParams* params, internal::NativeWidgetDelegate* delegate) { @@ -35,6 +36,10 @@ void TestViewsDelegate::OnBeforeWidgetInit( Widget::InitParams::TRANSLUCENT_WINDOW : Widget::InitParams::OPAQUE_WINDOW; } +#if !defined(OS_CHROMEOS) + if (!params->native_widget && use_desktop_native_widgets_) + params->native_widget = new DesktopNativeWidgetAura(delegate); +#endif // !defined(OS_CHROMEOS) } } // namespace views diff --git a/ui/views/test/test_views_delegate.h b/ui/views/test/test_views_delegate.h index 1d726f8..5d80e08 100644 --- a/ui/views/test/test_views_delegate.h +++ b/ui/views/test/test_views_delegate.h @@ -19,7 +19,16 @@ class TestViewsDelegate : public ViewsDelegate { TestViewsDelegate(); virtual ~TestViewsDelegate(); - void SetUseTransparentWindows(bool transparent); + // If set to |true|, forces widgets that do not provide a native widget to use + // DesktopNativeWidgetAura instead of whatever the default native widget would + // be. This has no effect on ChromeOS. + void set_use_desktop_native_widgets(bool desktop) { + use_desktop_native_widgets_ = desktop; + } + + void set_use_transparent_windows(bool transparent) { + use_transparent_windows_ = transparent; + } // ViewsDelegate: virtual void OnBeforeWidgetInit( @@ -27,6 +36,7 @@ class TestViewsDelegate : public ViewsDelegate { internal::NativeWidgetDelegate* delegate) OVERRIDE; private: + bool use_desktop_native_widgets_; bool use_transparent_windows_; #if defined(USE_AURA) scoped_ptr<wm::WMState> wm_state_; |