Index: ash/wm/lock_window_state.h |
diff --git a/ash/wm/lock_window_state.h b/ash/wm/lock_window_state.h |
index 71de81bd984fd2a13024d25411c107e297ee6852..ec4cd2340bbc18be439863887cd75415ba72efb3 100644 |
--- a/ash/wm/lock_window_state.h |
+++ b/ash/wm/lock_window_state.h |
@@ -12,13 +12,19 @@ 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(aura::Window* window); |
+ // |exclude_shelf| - 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(aura::Window* window, bool exclude_shelf); |
+ |
~LockWindowState() override; |
// WindowState::State overrides: |
@@ -31,6 +37,8 @@ class LockWindowState : public wm::WindowState::State { |
// Creates new LockWindowState instance and attaches it to |window|. |
static wm::WindowState* SetLockWindowState(aura::Window* window); |
+ static wm::WindowState* SetLockWindowStateWithShelfExcluded( |
+ aura::Window* window); |
private: |
// Updates the window to |new_state_type| and resulting bounds: |
@@ -44,6 +52,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 +62,10 @@ 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 - i.e. window |
+ // bounds exclude system shelf bounds. |
+ bool exclude_shelf_ = false; |
+ |
DISALLOW_COPY_AND_ASSIGN(LockWindowState); |
}; |