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

Unified Diff: ash/wm/lock_window_state.h

Issue 2876993002: Introduce window container to be used by lock screen app windows (Closed)
Patch Set: . Created 3 years, 7 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
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);
};

Powered by Google App Engine
This is Rietveld 408576698