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

Unified Diff: third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp

Issue 2430183002: Move arrow scrolling into KeyboardEventManager. (Closed)
Patch Set: Add keyEvent() null check to fix test Created 4 years, 2 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 | « third_party/WebKit/Source/web/WebFrameWidgetImpl.h ('k') | third_party/WebKit/Source/web/WebViewImpl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
index adfc9fb85a3e8be9bdbd4f139f17e07aaf1521d8..4394f907dafd12d2f56e45fa0d072fbc0eb4392e 100644
--- a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
+++ b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
@@ -999,7 +999,7 @@ WebInputEventResult WebFrameWidgetImpl::handleKeyEvent(
}
#endif // !OS(MACOSX)
- return keyEventDefault(event);
+ return WebInputEventResult::NotHandled;
}
WebInputEventResult WebFrameWidgetImpl::handleCharEvent(
@@ -1044,127 +1044,9 @@ WebInputEventResult WebFrameWidgetImpl::handleCharEvent(
if (result != WebInputEventResult::NotHandled)
return result;
- return keyEventDefault(event);
-}
-
-WebInputEventResult WebFrameWidgetImpl::keyEventDefault(
- const WebKeyboardEvent& event) {
- LocalFrame* frame = toLocalFrame(focusedCoreFrame());
- if (!frame)
- return WebInputEventResult::NotHandled;
-
- switch (event.type) {
- case WebInputEvent::Char:
- if (event.windowsKeyCode == VKEY_SPACE) {
- int keyCode = ((event.modifiers & WebInputEvent::ShiftKey) ? VKEY_PRIOR
- : VKEY_NEXT);
- return scrollViewWithKeyboard(keyCode, event.modifiers);
- }
- break;
- case WebInputEvent::KeyDown:
- case WebInputEvent::RawKeyDown:
- if (event.modifiers == WebInputEvent::ControlKey) {
- switch (event.windowsKeyCode) {
-#if !OS(MACOSX)
- case 'A':
- WebFrame::fromFrame(focusedCoreFrame())
- ->toWebLocalFrame()
- ->executeCommand(WebString::fromUTF8("SelectAll"));
- return WebInputEventResult::HandledSystem;
- case VKEY_INSERT:
- case 'C':
- WebFrame::fromFrame(focusedCoreFrame())
- ->toWebLocalFrame()
- ->executeCommand(WebString::fromUTF8("Copy"));
- return WebInputEventResult::HandledSystem;
-#endif
- // Match FF behavior in the sense that Ctrl+home/end are the only Ctrl
- // key combinations which affect scrolling. Safari is buggy in the
- // sense that it scrolls the page for all Ctrl+scrolling key
- // combinations. For e.g. Ctrl+pgup/pgdn/up/down, etc.
- case VKEY_HOME:
- case VKEY_END:
- break;
- default:
- return WebInputEventResult::NotHandled;
- }
- }
- if (!event.isSystemKey && !(event.modifiers & WebInputEvent::ShiftKey))
- return scrollViewWithKeyboard(event.windowsKeyCode, event.modifiers);
- break;
- default:
- break;
- }
- return WebInputEventResult::NotHandled;
-}
-
-WebInputEventResult WebFrameWidgetImpl::scrollViewWithKeyboard(int keyCode,
- int modifiers) {
- ScrollDirection scrollDirection;
- ScrollGranularity scrollGranularity;
-#if OS(MACOSX)
- // Control-Up/Down should be PageUp/Down on Mac.
- if (modifiers & WebMouseEvent::ControlKey) {
- if (keyCode == VKEY_UP)
- keyCode = VKEY_PRIOR;
- else if (keyCode == VKEY_DOWN)
- keyCode = VKEY_NEXT;
- }
-#endif
- if (!mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollGranularity))
- return WebInputEventResult::NotHandled;
-
- LocalFrame* frame = toLocalFrame(focusedCoreFrame());
- if (frame &&
- frame->eventHandler().bubblingScroll(scrollDirection, scrollGranularity))
- return WebInputEventResult::HandledSystem;
return WebInputEventResult::NotHandled;
}
-bool WebFrameWidgetImpl::mapKeyCodeForScroll(
- int keyCode,
- ScrollDirection* scrollDirection,
- ScrollGranularity* scrollGranularity) {
- switch (keyCode) {
- case VKEY_LEFT:
- *scrollDirection = ScrollLeftIgnoringWritingMode;
- *scrollGranularity = ScrollByLine;
- break;
- case VKEY_RIGHT:
- *scrollDirection = ScrollRightIgnoringWritingMode;
- *scrollGranularity = ScrollByLine;
- break;
- case VKEY_UP:
- *scrollDirection = ScrollUpIgnoringWritingMode;
- *scrollGranularity = ScrollByLine;
- break;
- case VKEY_DOWN:
- *scrollDirection = ScrollDownIgnoringWritingMode;
- *scrollGranularity = ScrollByLine;
- break;
- case VKEY_HOME:
- *scrollDirection = ScrollUpIgnoringWritingMode;
- *scrollGranularity = ScrollByDocument;
- break;
- case VKEY_END:
- *scrollDirection = ScrollDownIgnoringWritingMode;
- *scrollGranularity = ScrollByDocument;
- break;
- case VKEY_PRIOR: // page up
- *scrollDirection = ScrollUpIgnoringWritingMode;
- *scrollGranularity = ScrollByPage;
- break;
- case VKEY_NEXT: // page down
- *scrollDirection = ScrollDownIgnoringWritingMode;
- *scrollGranularity = ScrollByPage;
- break;
- default:
- return false;
- }
-
- return true;
-}
-
Frame* WebFrameWidgetImpl::focusedCoreFrame() const {
return page() ? page()->focusController().focusedOrMainFrame() : nullptr;
}
« no previous file with comments | « third_party/WebKit/Source/web/WebFrameWidgetImpl.h ('k') | third_party/WebKit/Source/web/WebViewImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698