OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 3 * Copyright (C) 2013 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 return range->text(); | 1067 return range->text(); |
1068 } | 1068 } |
1069 | 1069 |
1070 PassRefPtr<DOMPoint> Internals::touchPositionAdjustedToBestClickableNode(long x,
long y, long width, long height, Document* document, ExceptionCode& ec) | 1070 PassRefPtr<DOMPoint> Internals::touchPositionAdjustedToBestClickableNode(long x,
long y, long width, long height, Document* document, ExceptionCode& ec) |
1071 { | 1071 { |
1072 if (!document || !document->frame()) { | 1072 if (!document || !document->frame()) { |
1073 ec = INVALID_ACCESS_ERR; | 1073 ec = INVALID_ACCESS_ERR; |
1074 return 0; | 1074 return 0; |
1075 } | 1075 } |
1076 | 1076 |
| 1077 document->updateLayout(); |
| 1078 |
1077 IntSize radius(width / 2, height / 2); | 1079 IntSize radius(width / 2, height / 2); |
1078 IntPoint point(x + radius.width(), y + radius.height()); | 1080 IntPoint point(x + radius.width(), y + radius.height()); |
1079 | 1081 |
1080 Node* targetNode; | 1082 Node* targetNode; |
1081 IntPoint adjustedPoint; | 1083 IntPoint adjustedPoint; |
1082 | 1084 |
1083 bool foundNode = document->frame()->eventHandler()->bestClickableNodeForTouc
hPoint(point, radius, adjustedPoint, targetNode); | 1085 bool foundNode = document->frame()->eventHandler()->bestClickableNodeForTouc
hPoint(point, radius, adjustedPoint, targetNode); |
1084 if (foundNode) | 1086 if (foundNode) |
1085 return DOMPoint::create(adjustedPoint.x(), adjustedPoint.y()); | 1087 return DOMPoint::create(adjustedPoint.x(), adjustedPoint.y()); |
1086 | 1088 |
1087 return 0; | 1089 return 0; |
1088 } | 1090 } |
1089 | 1091 |
1090 Node* Internals::touchNodeAdjustedToBestClickableNode(long x, long y, long width
, long height, Document* document, ExceptionCode& ec) | 1092 Node* Internals::touchNodeAdjustedToBestClickableNode(long x, long y, long width
, long height, Document* document, ExceptionCode& ec) |
1091 { | 1093 { |
1092 if (!document || !document->frame()) { | 1094 if (!document || !document->frame()) { |
1093 ec = INVALID_ACCESS_ERR; | 1095 ec = INVALID_ACCESS_ERR; |
1094 return 0; | 1096 return 0; |
1095 } | 1097 } |
1096 | 1098 |
| 1099 document->updateLayout(); |
| 1100 |
1097 IntSize radius(width / 2, height / 2); | 1101 IntSize radius(width / 2, height / 2); |
1098 IntPoint point(x + radius.width(), y + radius.height()); | 1102 IntPoint point(x + radius.width(), y + radius.height()); |
1099 | 1103 |
1100 Node* targetNode; | 1104 Node* targetNode; |
1101 IntPoint adjustedPoint; | 1105 IntPoint adjustedPoint; |
1102 document->frame()->eventHandler()->bestClickableNodeForTouchPoint(point, rad
ius, adjustedPoint, targetNode); | 1106 document->frame()->eventHandler()->bestClickableNodeForTouchPoint(point, rad
ius, adjustedPoint, targetNode); |
1103 return targetNode; | 1107 return targetNode; |
1104 } | 1108 } |
1105 | 1109 |
1106 PassRefPtr<DOMPoint> Internals::touchPositionAdjustedToBestContextMenuNode(long
x, long y, long width, long height, Document* document, ExceptionCode& ec) | 1110 PassRefPtr<DOMPoint> Internals::touchPositionAdjustedToBestContextMenuNode(long
x, long y, long width, long height, Document* document, ExceptionCode& ec) |
1107 { | 1111 { |
1108 if (!document || !document->frame()) { | 1112 if (!document || !document->frame()) { |
1109 ec = INVALID_ACCESS_ERR; | 1113 ec = INVALID_ACCESS_ERR; |
1110 return 0; | 1114 return 0; |
1111 } | 1115 } |
1112 | 1116 |
| 1117 document->updateLayout(); |
| 1118 |
1113 IntSize radius(width / 2, height / 2); | 1119 IntSize radius(width / 2, height / 2); |
1114 IntPoint point(x + radius.width(), y + radius.height()); | 1120 IntPoint point(x + radius.width(), y + radius.height()); |
1115 | 1121 |
1116 Node* targetNode = 0; | 1122 Node* targetNode = 0; |
1117 IntPoint adjustedPoint; | 1123 IntPoint adjustedPoint; |
1118 | 1124 |
1119 bool foundNode = document->frame()->eventHandler()->bestContextMenuNodeForTo
uchPoint(point, radius, adjustedPoint, targetNode); | 1125 bool foundNode = document->frame()->eventHandler()->bestContextMenuNodeForTo
uchPoint(point, radius, adjustedPoint, targetNode); |
1120 if (foundNode) | 1126 if (foundNode) |
1121 return DOMPoint::create(adjustedPoint.x(), adjustedPoint.y()); | 1127 return DOMPoint::create(adjustedPoint.x(), adjustedPoint.y()); |
1122 | 1128 |
1123 return DOMPoint::create(x, y); | 1129 return DOMPoint::create(x, y); |
1124 } | 1130 } |
1125 | 1131 |
1126 Node* Internals::touchNodeAdjustedToBestContextMenuNode(long x, long y, long wid
th, long height, Document* document, ExceptionCode& ec) | 1132 Node* Internals::touchNodeAdjustedToBestContextMenuNode(long x, long y, long wid
th, long height, Document* document, ExceptionCode& ec) |
1127 { | 1133 { |
1128 if (!document || !document->frame()) { | 1134 if (!document || !document->frame()) { |
1129 ec = INVALID_ACCESS_ERR; | 1135 ec = INVALID_ACCESS_ERR; |
1130 return 0; | 1136 return 0; |
1131 } | 1137 } |
1132 | 1138 |
| 1139 document->updateLayout(); |
| 1140 |
1133 IntSize radius(width / 2, height / 2); | 1141 IntSize radius(width / 2, height / 2); |
1134 IntPoint point(x + radius.width(), y + radius.height()); | 1142 IntPoint point(x + radius.width(), y + radius.height()); |
1135 | 1143 |
1136 Node* targetNode = 0; | 1144 Node* targetNode = 0; |
1137 IntPoint adjustedPoint; | 1145 IntPoint adjustedPoint; |
1138 document->frame()->eventHandler()->bestContextMenuNodeForTouchPoint(point, r
adius, adjustedPoint, targetNode); | 1146 document->frame()->eventHandler()->bestContextMenuNodeForTouchPoint(point, r
adius, adjustedPoint, targetNode); |
1139 return targetNode; | 1147 return targetNode; |
1140 } | 1148 } |
1141 | 1149 |
1142 PassRefPtr<ClientRect> Internals::bestZoomableAreaForTouchPoint(long x, long y,
long width, long height, Document* document, ExceptionCode& ec) | 1150 PassRefPtr<ClientRect> Internals::bestZoomableAreaForTouchPoint(long x, long y,
long width, long height, Document* document, ExceptionCode& ec) |
1143 { | 1151 { |
1144 if (!document || !document->frame()) { | 1152 if (!document || !document->frame()) { |
1145 ec = INVALID_ACCESS_ERR; | 1153 ec = INVALID_ACCESS_ERR; |
1146 return 0; | 1154 return 0; |
1147 } | 1155 } |
1148 | 1156 |
| 1157 document->updateLayout(); |
| 1158 |
1149 IntSize radius(width / 2, height / 2); | 1159 IntSize radius(width / 2, height / 2); |
1150 IntPoint point(x + radius.width(), y + radius.height()); | 1160 IntPoint point(x + radius.width(), y + radius.height()); |
1151 | 1161 |
1152 Node* targetNode; | 1162 Node* targetNode; |
1153 IntRect zoomableArea; | 1163 IntRect zoomableArea; |
1154 bool foundNode = document->frame()->eventHandler()->bestZoomableAreaForTouch
Point(point, radius, zoomableArea, targetNode); | 1164 bool foundNode = document->frame()->eventHandler()->bestZoomableAreaForTouch
Point(point, radius, zoomableArea, targetNode); |
1155 if (foundNode) | 1165 if (foundNode) |
1156 return ClientRect::create(zoomableArea); | 1166 return ClientRect::create(zoomableArea); |
1157 | 1167 |
1158 return 0; | 1168 return 0; |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1924 | 1934 |
1925 RenderObject* renderer = select->renderer(); | 1935 RenderObject* renderer = select->renderer(); |
1926 if (!renderer->isMenuList()) | 1936 if (!renderer->isMenuList()) |
1927 return false; | 1937 return false; |
1928 | 1938 |
1929 RenderMenuList* menuList = toRenderMenuList(renderer); | 1939 RenderMenuList* menuList = toRenderMenuList(renderer); |
1930 return menuList->popupIsVisible(); | 1940 return menuList->popupIsVisible(); |
1931 } | 1941 } |
1932 | 1942 |
1933 } | 1943 } |
OLD | NEW |