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

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 9956056: ash: Add accelerator for snapping windows left/right. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 8 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
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/accelerators/accelerator_controller.cc
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index d5455111fd1945d1ce2dfb9b054f08047f30f859..200015978e2f8952723fa1f63f7033effcc60be0 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -21,8 +21,10 @@
#include "ash/system/brightness/brightness_control_delegate.h"
#include "ash/system/tray/system_tray.h"
#include "ash/volume_control_delegate.h"
+#include "ash/wm/property_util.h"
#include "ash/wm/window_cycle_controller.h"
#include "ash/wm/window_util.h"
+#include "ash/wm/workspace/snap_sizer.h"
#include "base/command_line.h"
#include "ui/aura/event.h"
#include "ui/aura/root_window.h"
@@ -452,6 +454,41 @@ bool AcceleratorController::AcceleratorPressed(
case SELECT_LAST_WIN:
SwitchToWindow(-1);
break;
+ case WINDOW_SNAP_LEFT:
+ case WINDOW_SNAP_RIGHT: {
+ aura::Window* window = wm::GetActiveWindow();
+ if (!window)
+ break;
+ internal::SnapSizer sizer(window,
+ gfx::Point(),
+ action == WINDOW_SNAP_LEFT ? internal::SnapSizer::LEFT_EDGE :
+ internal::SnapSizer::RIGHT_EDGE,
+ shell->GetGridSize());
+ window->SetBounds(sizer.GetSnapBounds(window->bounds()));
+ break;
+ }
+ case WINDOW_MINIMIZE: {
+ aura::Window* window = wm::GetActiveWindow();
+ if (window)
+ wm::MinimizeWindow(window);
+ break;
+ }
+ case WINDOW_MAXIMIZE_RESTORE: {
+ aura::Window* window = wm::GetActiveWindow();
+ if (window) {
+ if (wm::IsWindowMaximized(window))
+ wm::RestoreWindow(window);
+ else
+ wm::MaximizeWindow(window);
+ }
+ break;
+ }
+ case WINDOW_POSITION_CENTER: {
+ aura::Window* window = wm::GetActiveWindow();
+ if (window)
+ wm::CenterWindow(window);
+ break;
+ }
case ROTATE_WINDOWS:
return HandleRotateWindows();
#if !defined(NDEBUG)
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698