Android Pixel Perfect Mode: fix scrolling inside some web elements (#2301)
This commit is contained in:
@@ -1809,7 +1809,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
|
||||
if (ForMainFrame()) {
|
||||
if (size_ != new_size) {
|
||||
@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
@@ -1967,6 +1982,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
size_.value(),
|
||||
widget_base_->DIPsToCeiledBlinkSpace(
|
||||
widget_base_->VisibleViewportSize()),
|
||||
@@ -1818,7 +1818,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
visual_properties.browser_controls_params);
|
||||
return;
|
||||
}
|
||||
@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
@@ -2000,6 +2017,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
|
||||
View()->ResizeWithBrowserControls(
|
||||
size_.value(), widget_base_->VisibleViewportSize(),
|
||||
@@ -1827,7 +1827,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
visual_properties.browser_controls_params);
|
||||
}
|
||||
|
||||
@@ -2377,6 +2396,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
|
||||
@@ -2378,6 +2397,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
|
||||
View()->ZoomFactorForViewportLayout() *
|
||||
static_cast<float>(View()->ZoomLevelToZoomFactor(zoom_level)) *
|
||||
static_cast<float>(css_zoom_factor);
|
||||
@@ -1836,7 +1836,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
if (zoom_changed) {
|
||||
// Set the layout shift exclusion window for the zoom level change.
|
||||
if (LocalFrameView* view = document->View()) {
|
||||
@@ -3429,6 +3450,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) {
|
||||
@@ -3430,6 +3451,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) {
|
||||
// be needed in setting the raster scale.
|
||||
SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */,
|
||||
View()->MinimumPageScaleFactor(),
|
||||
@@ -1844,7 +1844,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
View()->MaximumPageScaleFactor());
|
||||
}
|
||||
|
||||
@@ -4798,9 +4820,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
|
||||
@@ -4799,9 +4821,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
|
||||
float page_scale_factor,
|
||||
bool is_pinch_gesture_active,
|
||||
float minimum,
|
||||
@@ -1856,7 +1856,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
|
||||
// Only propagate page scale from the main frame.
|
||||
if (ForMainFrame()) {
|
||||
@@ -4924,7 +4947,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
|
||||
@@ -4925,7 +4948,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
|
||||
void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen(
|
||||
const display::ScreenInfos& previous_original_screen_infos) {
|
||||
display::ScreenInfo screen_info = widget_base_->GetScreenInfo();
|
||||
@@ -1868,7 +1868,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
|
||||
|
||||
if (ShouldAutoDetermineCompositingToLCDTextSetting()) {
|
||||
// This causes compositing state to be modified which dirties the
|
||||
@@ -5120,7 +5146,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
|
||||
@@ -5121,7 +5147,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
|
||||
|
||||
if (!device_scale_factor_for_testing_) {
|
||||
non_testing_device_scale_factor_ =
|
||||
@@ -2047,8 +2047,8 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
|
||||
case WebInputEvent::Type::kGestureScrollBegin:
|
||||
- scroll_state_data.position_x = event.PositionInWidget().x();
|
||||
- scroll_state_data.position_y = event.PositionInWidget().y();
|
||||
+ scroll_state_data.position_x = event.PositionInWidget().x() / 2.f;
|
||||
+ scroll_state_data.position_y = event.PositionInWidget().y() / 2.f;
|
||||
+ scroll_state_data.position_x = ScalePoint(event.PositionInWidget()).x();
|
||||
+ scroll_state_data.position_y = ScalePoint(event.PositionInWidget()).y();
|
||||
scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint;
|
||||
scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint;
|
||||
scroll_state_data.is_beginning = true;
|
||||
|
||||
Reference in New Issue
Block a user