Commit 7a01858a authored by Mitsuru Oshima's avatar Mitsuru Oshima Committed by Commit Bot

Delete WideFrame when the frame becomes invisible.

 Running CtsAccessibilityTestCases doesn't leave wide frame.

Bug: 881672
Test: covered by unit test.
Change-Id: Id9f9ee4b9a99b3f0e468458cb970c731a339ba93
Reviewed-on: https://chromium-review.googlesource.com/c/1257146
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596030}
parent a689e10b
......@@ -964,8 +964,11 @@ void ClientControlledShellSurface::UpdateFrame() {
.work_area();
ash::wm::WindowState* window_state = GetWindowState();
if (window_state->IsMaximizedOrFullscreenOrPinned() &&
work_area.width() != geometry().width()) {
bool enable_wide_frame = GetFrameView()->visible() &&
window_state->IsMaximizedOrFullscreenOrPinned() &&
work_area.width() != geometry().width();
if (enable_wide_frame) {
if (!wide_frame_) {
wide_frame_ = std::make_unique<ash::WideFrameView>(widget_);
ash::ImmersiveFullscreenController::EnableForWidget(widget_, false);
......
......@@ -1546,11 +1546,17 @@ TEST_F(ClientControlledShellSurfaceTest, WideFrame) {
surface->Commit();
EXPECT_TRUE(wide_frame->header_view()->in_immersive_mode());
// Switching to NONE means no frame so it should delete wide frame.
surface->SetFrame(SurfaceFrameType::NONE);
surface->Commit();
EXPECT_FALSE(wide_frame->header_view()->in_immersive_mode());
EXPECT_EQ(custom_targeter, window->targeter());
EXPECT_FALSE(shell_surface->wide_frame_for_test());
{
ui::MouseEvent event(ui::ET_MOUSE_MOVED, mouse_location, mouse_location,
ui::EventTimeForNow(), 0, 0);
target =
static_cast<aura::Window*>(targeter.FindTargetForEvent(root, &event));
}
EXPECT_NE(surface->window(), target);
// Unmaximize it and the frame should be normal.
shell_surface->SetRestored();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment