Index: ash/wm/lock_window_state.h |
diff --git a/ash/wm/lock_window_state.h b/ash/wm/lock_window_state.h |
index 9a164ca87a514c5964d0737748cd58f71ce07cb1..5947e70ee3a9cf6e21527d63f644b1a3fc2245c4 100644 |
--- a/ash/wm/lock_window_state.h |
+++ b/ash/wm/lock_window_state.h |
@@ -12,13 +12,18 @@ namespace ash { |
// The LockWindowState implementation which reduces all possible window |
// states to maximized (or normal if can't be maximized)/minimized/full-screen |
-// and is applied only on lock (login) window container. |
+// and is applied only on lock (login) window container and window containers |
+// associated with apps handling lock screen tray actions. |
// LockWindowState implements Ash behavior without state machine. |
class LockWindowState : public wm::WindowState::State { |
public: |
// The |window|'s state object will be modified to use this new window mode |
// state handler. |
- explicit LockWindowState(WmWindow* window); |
+ // |shelf_visible| - if set, the maximized window size will be |
+ // restricted to work area defined by ash shelf, rather than taking only |
+ // virtual keyboard window into consideration when calculating the window |
+ // size. |
+ LockWindowState(WmWindow* window, bool shelf_visible); |
~LockWindowState() override; |
// WindowState::State overrides: |
@@ -31,6 +36,7 @@ class LockWindowState : public wm::WindowState::State { |
// Creates new LockWindowState instance and attaches it to |window|. |
static wm::WindowState* SetLockWindowState(WmWindow* window); |
+ static wm::WindowState* SetLockWindowStateWithVisibleShelf(WmWindow* window); |
private: |
// Updates the window to |new_state_type| and resulting bounds: |
@@ -44,6 +50,9 @@ class LockWindowState : public wm::WindowState::State { |
wm::WindowStateType GetMaximizedOrCenteredWindowType( |
wm::WindowState* window_state); |
+ // Returns boudns to be used for the provided window. |
+ gfx::Rect GetWindowBounds(aura::Window* window); |
+ |
// Updates the bounds taking virtual keyboard bounds into consideration. |
void UpdateBounds(wm::WindowState* window_state); |
@@ -51,6 +60,9 @@ class LockWindowState : public wm::WindowState::State { |
// WM_STATE_TYPE{NORMAL, MINIMIZED, MAXIMIZED}. |
wm::WindowStateType current_state_type_; |
+ // Restrict window size to the work area defined by the shelf. |
+ bool shelf_visible_ = false; |
+ |
DISALLOW_COPY_AND_ASSIGN(LockWindowState); |
}; |