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

Unified Diff: content/renderer/render_widget.cc

Issue 14999010: Allows fullscreen to be triggered with the key events used for scrolling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
« cc/trees/layer_tree_host.cc ('K') | « content/renderer/render_widget.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index d4a55d6075564736399c4b010ae9cb21a701d9df..7476799d41c20625a83734bab3ba0e94c9922a36 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -47,6 +47,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebRange.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h"
#include "third_party/skia/include/core/SkShader.h"
+#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/ui_base_switches.h"
#include "ui/gfx/rect_conversions.h"
#include "ui/gfx/size_conversions.h"
@@ -74,6 +75,7 @@ using WebKit::WebCompositionUnderline;
using WebKit::WebCursorInfo;
using WebKit::WebGestureEvent;
using WebKit::WebInputEvent;
+using WebKit::WebKeyboardEvent;
using WebKit::WebMouseEvent;
using WebKit::WebNavigationPolicy;
using WebKit::WebPagePopup;
@@ -754,6 +756,8 @@ void RenderWidget::OnHandleInputEvent(const WebKit::WebInputEvent* input_event,
bool processed = prevent_default;
if (input_event->type != WebInputEvent::Char || !suppress_next_char_events_) {
suppress_next_char_events_ = false;
+ if (!processed)
+ processed = MaybeScrollTopControls(input_event);
if (!processed && webwidget_)
processed = webwidget_->handleInputEvent(*input_event);
}
@@ -825,6 +829,38 @@ void RenderWidget::OnHandleInputEvent(const WebKit::WebInputEvent* input_event,
}
}
+bool RenderWidget::MaybeScrollTopControls(const WebInputEvent* event) {
+ if (event->type != WebInputEvent::RawKeyDown)
+ return false;
+ const WebKeyboardEvent* key_event =
+ static_cast<const WebKeyboardEvent *>(event);
+ if (key_event->isSystemKey)
+ return false;
+ int key = key_event->windowsKeyCode;
+ bool shift_pressed = key_event->modifiers & WebInputEvent::ShiftKey;
+ bool processed = false;
+ if (compositor_->GetTopControlsOffset() < 0.f) {
+ // Shows top controls upon scrolling up: Shift-space, up, pgup, home
+ if (shift_pressed) {
+ if (key == ui::VKEY_SPACE) processed = true;
+ } else {
+ if (key == ui::VKEY_UP || key == ui::VKEY_PRIOR || key == ui::VKEY_HOME)
aelias_OOO_until_Jul13 2013/05/21 05:51:41 This is pretty complex and you're likely to miss s
Jinsuk Kim 2013/05/24 09:57:13 Done. Created a new CL on WebKit side for that htt
+ processed = true;
+ }
+ if (processed)
+ compositor_->ShowTopControls(true);
+ } else {
+ // Hides top controls upon scrolling down: down, space, pgdn, end
+ if (!shift_pressed &&
+ (key == ui::VKEY_DOWN || key == ui::VKEY_SPACE ||
+ key == ui::VKEY_NEXT || key == ui::VKEY_END)) {
+ compositor_->ShowTopControls(false);
+ processed = true;
+ }
+ }
+ return processed;
+}
+
void RenderWidget::OnCursorVisibilityChange(bool is_visible) {
if (webwidget_)
webwidget_->setCursorVisibilityState(is_visible);
« cc/trees/layer_tree_host.cc ('K') | « content/renderer/render_widget.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698