summaryrefslogtreecommitdiffstats
path: root/ui/views/test
diff options
context:
space:
mode:
authormohsen@chromium.org <mohsen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 21:31:58 +0000
committermohsen@chromium.org <mohsen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 21:31:58 +0000
commit1ac832c6e9258a68bd17c85773719225f106b3ae (patch)
tree51a45493337c4ee868b0f62911b4ac51785bc3dd /ui/views/test
parent3bdb0994b4ab7843e1c82289156761a95b4552e5 (diff)
downloadchromium_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.cc15
-rw-r--r--ui/views/test/test_views_delegate.h12
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_;