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

Unified Diff: athena/screen/screen_accelerator_handler.cc

Issue 431183003: Rotate screen in response to accelerator or device orientation sensors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dependencies on ipc and content. Created 6 years, 4 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: athena/screen/screen_accelerator_handler.cc
diff --git a/athena/screen/screen_accelerator_handler.cc b/athena/screen/screen_accelerator_handler.cc
index 031a039dc68a2e1ecdc83b557a307da41deb522c..97c08ec4aa38e45c366222eff2ead6c27cba45c3 100644
--- a/athena/screen/screen_accelerator_handler.cc
+++ b/athena/screen/screen_accelerator_handler.cc
@@ -5,10 +5,13 @@
#include "athena/screen/screen_accelerator_handler.h"
#include "athena/input/public/accelerator_manager.h"
+#include "athena/screen/public/screen_manager.h"
#include "ui/aura/window.h"
#include "ui/aura/window_event_dispatcher.h"
#include "ui/aura/window_tree_host.h"
#include "ui/compositor/debug_utils.h"
+#include "ui/gfx/display.h"
+#include "ui/gfx/screen.h"
#include "ui/wm/public/activation_client.h"
namespace athena {
@@ -17,6 +20,7 @@ namespace {
enum Command {
CMD_PRINT_LAYER_HIERARCHY,
CMD_PRINT_WINDOW_HIERARCHY,
+ CMD_ROTATE_SCREEN,
};
const int EF_ALL_DOWN =
@@ -27,6 +31,9 @@ const AcceleratorData accelerator_data[] = {
AF_DEBUG},
{TRIGGER_ON_PRESS, ui::VKEY_W, EF_ALL_DOWN, CMD_PRINT_WINDOW_HIERARCHY,
AF_DEBUG},
+ {TRIGGER_ON_PRESS, ui::VKEY_F3,
+ ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
+ CMD_ROTATE_SCREEN, AF_NONE},
};
void PrintLayerHierarchy(aura::Window* root_window) {
@@ -63,6 +70,20 @@ void HandlePrintWindowHierarchy(aura::Window* root_window) {
LOG(ERROR) << out.str();
}
+void HandleRotateScreen() {
+ ScreenManager* screen_manager = ScreenManager::Get();
+ gfx::Display::Rotation current_rotation =
+ gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation();
+ if (current_rotation == gfx::Display::ROTATE_0)
+ screen_manager->SetRotation(gfx::Display::ROTATE_90);
+ else if (current_rotation == gfx::Display::ROTATE_90)
+ screen_manager->SetRotation(gfx::Display::ROTATE_180);
+ else if (current_rotation == gfx::Display::ROTATE_180)
+ screen_manager->SetRotation(gfx::Display::ROTATE_270);
+ else if (current_rotation == gfx::Display::ROTATE_270)
+ screen_manager->SetRotation(gfx::Display::ROTATE_0);
+}
+
} // namespace
// static
@@ -89,6 +110,9 @@ bool ScreenAcceleratorHandler::OnAcceleratorFired(
case CMD_PRINT_WINDOW_HIERARCHY:
HandlePrintWindowHierarchy(root_window_);
return true;
+ case CMD_ROTATE_SCREEN:
+ HandleRotateScreen();
+ return true;
}
return false;
}

Powered by Google App Engine
This is Rietveld 408576698