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

Unified Diff: ash/wm/default_state.cc

Issue 597683003: Add window states docked; and docked minimized. Add wm window event to set docked and undocked. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dock
Patch Set: Created 6 years, 3 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/default_state.cc
diff --git a/ash/wm/default_state.cc b/ash/wm/default_state.cc
index a6e0ee291bf6b81ef6533a8f00f14425ee2d05f4..ac67591fe580cbc6a28a53206c66a07e884c3fbc 100644
--- a/ash/wm/default_state.cc
+++ b/ash/wm/default_state.cc
@@ -78,16 +78,25 @@ void DefaultState::OnWMEvent(WindowState* window_state,
if (ProcessCompoundEvents(window_state, event))
return;
+ WindowStateType current = window_state->GetStateType();
varkha 2014/09/23 22:35:31 nit: current_state_type would be more expressive n
dtapuska 2014/09/26 14:17:07 Acknowledged.
WindowStateType next_state_type = WINDOW_STATE_TYPE_NORMAL;
switch (event->type()) {
case WM_EVENT_NORMAL:
- next_state_type = WINDOW_STATE_TYPE_NORMAL;
+ if (current == WINDOW_STATE_TYPE_DOCKED_MINIMIZED) {
varkha 2014/09/23 22:35:31 nit: Ternary? Here and below.
+ next_state_type = WINDOW_STATE_TYPE_DOCKED;
+ } else {
+ next_state_type = WINDOW_STATE_TYPE_NORMAL;
+ }
break;
case WM_EVENT_MAXIMIZE:
next_state_type = WINDOW_STATE_TYPE_MAXIMIZED;
break;
case WM_EVENT_MINIMIZE:
- next_state_type = WINDOW_STATE_TYPE_MINIMIZED;
+ if (current == WINDOW_STATE_TYPE_DOCKED) {
+ next_state_type = WINDOW_STATE_TYPE_DOCKED_MINIMIZED;
+ } else {
+ next_state_type = WINDOW_STATE_TYPE_MINIMIZED;
+ }
break;
case WM_EVENT_FULLSCREEN:
next_state_type = WINDOW_STATE_TYPE_FULLSCREEN;
@@ -98,6 +107,18 @@ void DefaultState::OnWMEvent(WindowState* window_state,
case WM_EVENT_SNAP_RIGHT:
next_state_type = WINDOW_STATE_TYPE_RIGHT_SNAPPED;
break;
+ case WM_EVENT_DOCK:
+ next_state_type = WINDOW_STATE_TYPE_DOCKED;
+ break;
+ case WM_EVENT_UNDOCK:
varkha 2014/09/23 22:35:31 Can we make it work without this event type?
dtapuska 2014/09/26 14:17:06 Done.
+ if (current == WINDOW_STATE_TYPE_DOCKED) {
+ next_state_type = WINDOW_STATE_TYPE_NORMAL;
+ } else if (current == WINDOW_STATE_TYPE_DOCKED_MINIMIZED) {
+ next_state_type = WINDOW_STATE_TYPE_MINIMIZED;
+ } else {
+ return;
varkha 2014/09/23 22:35:31 Does this ever happen (if not - NOTREACHED() would
dtapuska 2014/09/26 14:17:07 Done.
+ }
+ break;
case WM_EVENT_SET_BOUNDS:
SetBounds(window_state, static_cast<const SetBoundsEvent*>(event));
return;
@@ -119,8 +140,6 @@ void DefaultState::OnWMEvent(WindowState* window_state,
return;
}
- WindowStateType current = window_state->GetStateType();
-
if (next_state_type == current && window_state->IsSnapped()) {
gfx::Rect snapped_bounds = event->type() == WM_EVENT_SNAP_LEFT ?
GetDefaultLeftSnappedWindowBoundsInParent(window_state->window()) :
@@ -273,6 +292,8 @@ bool DefaultState::ProcessCompoundEvents(WindowState* window_state,
case WM_EVENT_SNAP_RIGHT:
case WM_EVENT_SET_BOUNDS:
case WM_EVENT_SHOW_INACTIVE:
+ case WM_EVENT_DOCK:
+ case WM_EVENT_UNDOCK:
break;
case WM_EVENT_ADDED_TO_WORKSPACE:
case WM_EVENT_WORKAREA_BOUNDS_CHANGED:
@@ -372,6 +393,8 @@ bool DefaultState::ProcessWorkspaceEvents(WindowState* window_state,
case WM_EVENT_SNAP_RIGHT:
case WM_EVENT_SET_BOUNDS:
case WM_EVENT_SHOW_INACTIVE:
+ case WM_EVENT_DOCK:
+ case WM_EVENT_UNDOCK:
break;
}
return false;
@@ -507,6 +530,9 @@ void DefaultState::UpdateBoundsFromState(WindowState* window_state,
GetDefaultLeftSnappedWindowBoundsInParent(window_state->window()) :
GetDefaultRightSnappedWindowBoundsInParent(window_state->window());
break;
+ case WINDOW_STATE_TYPE_DOCKED:
+ case WINDOW_STATE_TYPE_DOCKED_MINIMIZED:
+ break;
case WINDOW_STATE_TYPE_DEFAULT:
case WINDOW_STATE_TYPE_NORMAL: {
gfx::Rect work_area_in_parent =

Powered by Google App Engine
This is Rietveld 408576698