Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Unified Diff: ui/views/widget/widget_interactive_uitest.cc

Issue 1707233002: Reduce the fullscreen window height by 1px on activation loss. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to widget_unittest.cc Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/platform_window/win/win_window.cc ('k') | ui/views/win/hwnd_message_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/widget_interactive_uitest.cc
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
index 5d368bd10256414e4a5d354aad1cdc291df7aa3d..acc5c6322f9dbbba84319e6aefa31e908f2eabac 100644
--- a/ui/views/widget/widget_interactive_uitest.cc
+++ b/ui/views/widget/widget_interactive_uitest.cc
@@ -654,6 +654,7 @@ TEST_F(WidgetTestInteractive, ViewFocusOnHWNDEnabledChanges) {
}
widget->Show();
+ widget->GetNativeWindow()->GetHost()->Show();
const HWND hwnd = HWNDForWidget(widget);
EXPECT_TRUE(::IsWindow(hwnd));
EXPECT_TRUE(::IsWindowEnabled(hwnd));
@@ -740,6 +741,69 @@ TEST_F(WidgetTestInteractive, WidgetNotActivatedOnFakeActivationMessages) {
EXPECT_EQ(true, widget1.active());
EXPECT_EQ(false, widget2.active());
}
+
+// On Windows if we create a fullscreen window on a thread, then it affects the
+// way other windows on the thread interact with the taskbar. To workaround
+// this we reduce the bounds of a fullscreen window by 1px when it loses
+// activation. This test verifies the same.
+TEST_F(WidgetTestInteractive, FullscreenBoundsReducedOnActivationLoss) {
+ Widget widget1;
+ Widget::InitParams params =
+ CreateParams(Widget::InitParams::TYPE_WINDOW);
+ params.native_widget = new DesktopNativeWidgetAura(&widget1);
+ params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+ widget1.Init(params);
+ widget1.SetBounds(gfx::Rect(0, 0, 200, 200));
+ widget1.Show();
+
+ widget1.Activate();
+ RunPendingMessages();
+ EXPECT_EQ(::GetActiveWindow(),
+ widget1.GetNativeWindow()->GetHost()->GetAcceleratedWidget());
+
+ widget1.SetFullscreen(true);
+ EXPECT_TRUE(widget1.IsFullscreen());
+ // Ensure that the StopIgnoringPosChanges task in HWNDMessageHandler runs.
+ // This task is queued when a widget becomes fullscreen.
+ RunPendingMessages();
+ EXPECT_EQ(::GetActiveWindow(),
+ widget1.GetNativeWindow()->GetHost()->GetAcceleratedWidget());
+ gfx::Rect fullscreen_bounds = widget1.GetWindowBoundsInScreen();
+
+ Widget widget2;
+ params.native_widget = new DesktopNativeWidgetAura(&widget2);
+ params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+ widget2.Init(params);
+ widget2.SetBounds(gfx::Rect(0, 0, 200, 200));
+ widget2.Show();
+
+ widget2.Activate();
+ RunPendingMessages();
+ EXPECT_EQ(::GetActiveWindow(),
+ widget2.GetNativeWindow()->GetHost()->GetAcceleratedWidget());
+
+ gfx::Rect fullscreen_bounds_after_activation_loss =
+ widget1.GetWindowBoundsInScreen();
+
+ // After deactivation loss the bounds of the fullscreen widget should be
+ // reduced by 1px.
+ EXPECT_EQ(fullscreen_bounds.height() -
+ fullscreen_bounds_after_activation_loss.height(), 1);
+
+ widget1.Activate();
+ RunPendingMessages();
+ EXPECT_EQ(::GetActiveWindow(),
+ widget1.GetNativeWindow()->GetHost()->GetAcceleratedWidget());
+
+ gfx::Rect fullscreen_bounds_after_activate =
+ widget1.GetWindowBoundsInScreen();
+
+ // After activation the bounds of the fullscreen widget should be restored.
+ EXPECT_EQ(fullscreen_bounds, fullscreen_bounds_after_activate);
+
+ widget1.CloseNow();
+ widget2.CloseNow();
+}
#endif // defined(OS_WIN)
#if !defined(OS_CHROMEOS)
« no previous file with comments | « ui/platform_window/win/win_window.cc ('k') | ui/views/win/hwnd_message_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698