| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_controller.h" | 7 #include "ash/accelerators/accelerator_controller.h" |
| 8 #include "ash/accelerators/accelerator_table.h" | 8 #include "ash/accelerators/accelerator_table.h" |
| 9 #include "ash/ash_switches.h" | 9 #include "ash/ash_switches.h" |
| 10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
| (...skipping 2096 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2107 EXPECT_EQ(widget_one->GetNativeWindow()->bounds().ToString(), | 2107 EXPECT_EQ(widget_one->GetNativeWindow()->bounds().ToString(), |
| 2108 widget_two->GetNativeWindow()->bounds().ToString()); | 2108 widget_two->GetNativeWindow()->bounds().ToString()); |
| 2109 EXPECT_EQ(area_when_shelf_shown, | 2109 EXPECT_EQ(area_when_shelf_shown, |
| 2110 widget_one->GetNativeWindow()->bounds().size().GetArea()); | 2110 widget_one->GetNativeWindow()->bounds().size().GetArea()); |
| 2111 } | 2111 } |
| 2112 | 2112 |
| 2113 // Confirm that the shelf is dimmed only when content is maximized and | 2113 // Confirm that the shelf is dimmed only when content is maximized and |
| 2114 // shelf is not autohidden. | 2114 // shelf is not autohidden. |
| 2115 TEST_F(ShelfLayoutManagerTest, Dimming) { | 2115 TEST_F(ShelfLayoutManagerTest, Dimming) { |
| 2116 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 2116 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
| 2117 scoped_ptr<aura::Window> w1(CreateTestWindow()); | 2117 std::unique_ptr<aura::Window> w1(CreateTestWindow()); |
| 2118 w1->Show(); | 2118 w1->Show(); |
| 2119 wm::ActivateWindow(w1.get()); | 2119 wm::ActivateWindow(w1.get()); |
| 2120 | 2120 |
| 2121 // Normal window doesn't dim shelf. | 2121 // Normal window doesn't dim shelf. |
| 2122 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); | 2122 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
| 2123 ShelfWidget* shelf = GetShelfWidget(); | 2123 ShelfWidget* shelf = GetShelfWidget(); |
| 2124 EXPECT_FALSE(shelf->GetDimsShelf()); | 2124 EXPECT_FALSE(shelf->GetDimsShelf()); |
| 2125 | 2125 |
| 2126 // Maximized window does. | 2126 // Maximized window does. |
| 2127 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2127 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2188 } else { | 2188 } else { |
| 2189 EXPECT_FALSE(shelf->IsVisible()); | 2189 EXPECT_FALSE(shelf->IsVisible()); |
| 2190 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2190 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
| 2191 } | 2191 } |
| 2192 } | 2192 } |
| 2193 } | 2193 } |
| 2194 | 2194 |
| 2195 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) { | 2195 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) { |
| 2196 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2196 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); |
| 2197 | 2197 |
| 2198 scoped_ptr<aura::Window> w1(CreateTestWindow()); | 2198 std::unique_ptr<aura::Window> w1(CreateTestWindow()); |
| 2199 w1->Show(); | 2199 w1->Show(); |
| 2200 wm::ActivateWindow(w1.get()); | 2200 wm::ActivateWindow(w1.get()); |
| 2201 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2201 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); |
| 2202 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2202 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
| 2203 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2203 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); |
| 2204 | 2204 |
| 2205 scoped_ptr<aura::Window> w2(CreateTestWindow()); | 2205 std::unique_ptr<aura::Window> w2(CreateTestWindow()); |
| 2206 w2->Show(); | 2206 w2->Show(); |
| 2207 wm::ActivateWindow(w2.get()); | 2207 wm::ActivateWindow(w2.get()); |
| 2208 // Overlaps with shelf. | 2208 // Overlaps with shelf. |
| 2209 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds()); | 2209 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds()); |
| 2210 | 2210 |
| 2211 // Still background is 'maximized'. | 2211 // Still background is 'maximized'. |
| 2212 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2212 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); |
| 2213 | 2213 |
| 2214 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); | 2214 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); |
| 2215 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2215 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); |
| 2216 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); | 2216 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); |
| 2217 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2217 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); |
| 2218 | 2218 |
| 2219 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2219 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
| 2220 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2220 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); |
| 2221 w1.reset(); | 2221 w1.reset(); |
| 2222 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2222 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); |
| 2223 } | 2223 } |
| 2224 | 2224 |
| 2225 // Verify that the shelf doesn't have the opaque background if it's auto-hide | 2225 // Verify that the shelf doesn't have the opaque background if it's auto-hide |
| 2226 // status. | 2226 // status. |
| 2227 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) { | 2227 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) { |
| 2228 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget ()->GetBackgroundType()); | 2228 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget ()->GetBackgroundType()); |
| 2229 | 2229 |
| 2230 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 2230 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
| 2231 scoped_ptr<aura::Window> w1(CreateTestWindow()); | 2231 std::unique_ptr<aura::Window> w1(CreateTestWindow()); |
| 2232 w1->Show(); | 2232 w1->Show(); |
| 2233 wm::ActivateWindow(w1.get()); | 2233 wm::ActivateWindow(w1.get()); |
| 2234 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2234 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); |
| 2235 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2235 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
| 2236 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2236 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); |
| 2237 } | 2237 } |
| 2238 | 2238 |
| 2239 #if defined(OS_CHROMEOS) | 2239 #if defined(OS_CHROMEOS) |
| 2240 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge | 2240 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge |
| 2241 #else | 2241 #else |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2300 // handled, and do not crash (crbug.com/458768) | 2300 // handled, and do not crash (crbug.com/458768) |
| 2301 TEST_F(ShelfLayoutManagerTest, ShutdownHandlesWindowActivation) { | 2301 TEST_F(ShelfLayoutManagerTest, ShutdownHandlesWindowActivation) { |
| 2302 ShelfLayoutManager* shelf_manager = GetShelfLayoutManager(); | 2302 ShelfLayoutManager* shelf_manager = GetShelfLayoutManager(); |
| 2303 ShelfWidget* shelf = GetShelfWidget(); | 2303 ShelfWidget* shelf = GetShelfWidget(); |
| 2304 shelf_manager->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 2304 shelf_manager->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
| 2305 | 2305 |
| 2306 aura::Window* window1 = CreateTestWindowInShellWithId(0); | 2306 aura::Window* window1 = CreateTestWindowInShellWithId(0); |
| 2307 window1->SetBounds(gfx::Rect(0, 0, 100, 100)); | 2307 window1->SetBounds(gfx::Rect(0, 0, 100, 100)); |
| 2308 window1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2308 window1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
| 2309 window1->Show(); | 2309 window1->Show(); |
| 2310 scoped_ptr<aura::Window> window2(CreateTestWindowInShellWithId(0)); | 2310 std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(0)); |
| 2311 window2->SetBounds(gfx::Rect(0, 0, 100, 100)); | 2311 window2->SetBounds(gfx::Rect(0, 0, 100, 100)); |
| 2312 window2->Show(); | 2312 window2->Show(); |
| 2313 wm::ActivateWindow(window1); | 2313 wm::ActivateWindow(window1); |
| 2314 | 2314 |
| 2315 shelf->ShutdownStatusAreaWidget(); | 2315 shelf->ShutdownStatusAreaWidget(); |
| 2316 shelf_manager->PrepareForShutdown(); | 2316 shelf_manager->PrepareForShutdown(); |
| 2317 | 2317 |
| 2318 // Deleting a focused maximized window will switch focus to |window2|. This | 2318 // Deleting a focused maximized window will switch focus to |window2|. This |
| 2319 // would normally cause the ShelfLayoutManager to update its state. However | 2319 // would normally cause the ShelfLayoutManager to update its state. However |
| 2320 // during shutdown we want to handle this without crashing. | 2320 // during shutdown we want to handle this without crashing. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2331 StatusAreaWidget* status_area_widget = | 2331 StatusAreaWidget* status_area_widget = |
| 2332 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); | 2332 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); |
| 2333 EXPECT_TRUE(status_area_widget->IsVisible()); | 2333 EXPECT_TRUE(status_area_widget->IsVisible()); |
| 2334 // Shelf should be in the first display's area. | 2334 // Shelf should be in the first display's area. |
| 2335 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); | 2335 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); |
| 2336 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); | 2336 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); |
| 2337 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); | 2337 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); |
| 2338 } | 2338 } |
| 2339 | 2339 |
| 2340 } // namespace ash | 2340 } // namespace ash |
| OLD | NEW |