OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 // member. | 933 // member. |
934 // The m_suppressNextKeypressEvent is set if the KeyDown is handled by | 934 // The m_suppressNextKeypressEvent is set if the KeyDown is handled by |
935 // Webkit. A keyDown event is typically associated with a keyPress(char) | 935 // Webkit. A keyDown event is typically associated with a keyPress(char) |
936 // event and a keyUp event. We reset this flag here as this is a new keyDown | 936 // event and a keyUp event. We reset this flag here as this is a new keyDown |
937 // event. | 937 // event. |
938 m_suppressNextKeypressEvent = false; | 938 m_suppressNextKeypressEvent = false; |
939 | 939 |
940 // If there is a select popup, it should be the one processing the event, | 940 // If there is a select popup, it should be the one processing the event, |
941 // not the page. | 941 // not the page. |
942 if (m_selectPopup) | 942 if (m_selectPopup) |
943 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); | 943 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(mainFr
ameImpl()->frameView(), event)); |
944 if (m_pagePopup) { | 944 if (m_pagePopup) { |
945 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); | 945 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(mainFrameImpl()
->frameView(), event)); |
946 // We need to ignore the next Char event after this otherwise pressing | 946 // We need to ignore the next Char event after this otherwise pressing |
947 // enter when selecting an item in the popup will go to the page. | 947 // enter when selecting an item in the popup will go to the page. |
948 if (WebInputEvent::RawKeyDown == event.type) | 948 if (WebInputEvent::RawKeyDown == event.type) |
949 m_suppressNextKeypressEvent = true; | 949 m_suppressNextKeypressEvent = true; |
950 return true; | 950 return true; |
951 } | 951 } |
952 | 952 |
953 RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame(); | 953 RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame(); |
954 if (focusedFrame && focusedFrame->isRemoteFrame()) { | 954 if (focusedFrame && focusedFrame->isRemoteFrame()) { |
955 WebRemoteFrameImpl* webFrame = WebRemoteFrameImpl::fromFrame(*toRemoteFr
ame(focusedFrame.get())); | 955 WebRemoteFrameImpl* webFrame = WebRemoteFrameImpl::fromFrame(*toRemoteFr
ame(focusedFrame.get())); |
956 webFrame->client()->forwardInputEvent(&event); | 956 webFrame->client()->forwardInputEvent(&event); |
957 return true; | 957 return true; |
958 } | 958 } |
959 | 959 |
960 if (!focusedFrame || !focusedFrame->isLocalFrame()) | 960 if (!focusedFrame || !focusedFrame->isLocalFrame()) |
961 return false; | 961 return false; |
962 | 962 |
963 LocalFrame* frame = toLocalFrame(focusedFrame.get()); | 963 LocalFrame* frame = toLocalFrame(focusedFrame.get()); |
964 | 964 |
965 PlatformKeyboardEventBuilder evt(event); | 965 PlatformKeyboardEventBuilder evt(mainFrameImpl()->frameView(), event); |
966 | 966 |
967 if (frame->eventHandler().keyEvent(evt)) { | 967 if (frame->eventHandler().keyEvent(evt)) { |
968 if (WebInputEvent::RawKeyDown == event.type) { | 968 if (WebInputEvent::RawKeyDown == event.type) { |
969 // Suppress the next keypress event unless the focused node is a plu
g-in node. | 969 // Suppress the next keypress event unless the focused node is a plu
g-in node. |
970 // (Flash needs these keypress events to handle non-US keyboards.) | 970 // (Flash needs these keypress events to handle non-US keyboards.) |
971 Element* element = focusedElement(); | 971 Element* element = focusedElement(); |
972 if (!element || !element->renderer() || !element->renderer()->isEmbe
ddedObject()) | 972 if (!element || !element->renderer() || !element->renderer()->isEmbe
ddedObject()) |
973 m_suppressNextKeypressEvent = true; | 973 m_suppressNextKeypressEvent = true; |
974 } | 974 } |
975 return true; | 975 return true; |
(...skipping 26 matching lines...) Expand all Loading... |
1002 // member. The m_suppressNextKeypressEvent is set if the KeyDown is | 1002 // member. The m_suppressNextKeypressEvent is set if the KeyDown is |
1003 // handled by Webkit. A keyDown event is typically associated with a | 1003 // handled by Webkit. A keyDown event is typically associated with a |
1004 // keyPress(char) event and a keyUp event. We reset this flag here as it | 1004 // keyPress(char) event and a keyUp event. We reset this flag here as it |
1005 // only applies to the current keyPress event. | 1005 // only applies to the current keyPress event. |
1006 bool suppress = m_suppressNextKeypressEvent; | 1006 bool suppress = m_suppressNextKeypressEvent; |
1007 m_suppressNextKeypressEvent = false; | 1007 m_suppressNextKeypressEvent = false; |
1008 | 1008 |
1009 // If there is a select popup, it should be the one processing the event, | 1009 // If there is a select popup, it should be the one processing the event, |
1010 // not the page. | 1010 // not the page. |
1011 if (m_selectPopup) | 1011 if (m_selectPopup) |
1012 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); | 1012 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(mainFr
ameImpl()->frameView(), event)); |
1013 if (m_pagePopup) | 1013 if (m_pagePopup) |
1014 return m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); | 1014 return m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(mainFram
eImpl()->frameView(), event)); |
1015 | 1015 |
1016 LocalFrame* frame = toLocalFrame(focusedCoreFrame()); | 1016 LocalFrame* frame = toLocalFrame(focusedCoreFrame()); |
1017 if (!frame) | 1017 if (!frame) |
1018 return suppress; | 1018 return suppress; |
1019 | 1019 |
1020 EventHandler& handler = frame->eventHandler(); | 1020 EventHandler& handler = frame->eventHandler(); |
1021 | 1021 |
1022 PlatformKeyboardEventBuilder evt(event); | 1022 PlatformKeyboardEventBuilder evt(mainFrameImpl()->frameView(), event); |
1023 if (!evt.isCharacterKey()) | 1023 if (!evt.isCharacterKey()) |
1024 return true; | 1024 return true; |
1025 | 1025 |
1026 // Accesskeys are triggered by char events and can't be suppressed. | 1026 // Accesskeys are triggered by char events and can't be suppressed. |
1027 if (handler.handleAccessKey(evt)) | 1027 if (handler.handleAccessKey(evt)) |
1028 return true; | 1028 return true; |
1029 | 1029 |
1030 // Safari 3.1 does not pass off windows system key messages (WM_SYSCHAR) to | 1030 // Safari 3.1 does not pass off windows system key messages (WM_SYSCHAR) to |
1031 // the eventHandler::keyEvent. We mimic this behavior on all platforms since | 1031 // the eventHandler::keyEvent. We mimic this behavior on all platforms since |
1032 // for now we are converting other platform's key events to windows key | 1032 // for now we are converting other platform's key events to windows key |
(...skipping 3469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4502 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width | 4502 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width |
4503 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); | 4503 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); |
4504 } | 4504 } |
4505 | 4505 |
4506 void WebViewImpl::forceNextWebGLContextCreationToFail() | 4506 void WebViewImpl::forceNextWebGLContextCreationToFail() |
4507 { | 4507 { |
4508 WebGLRenderingContext::forceNextWebGLContextCreationToFail(); | 4508 WebGLRenderingContext::forceNextWebGLContextCreationToFail(); |
4509 } | 4509 } |
4510 | 4510 |
4511 } // namespace blink | 4511 } // namespace blink |
OLD | NEW |