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

Side by Side Diff: Source/core/frame/PinchViewport.h

Issue 643473002: Made top controls work with virtual viewport pinch-to-zoom. (Blink) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Removed if statement Created 6 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 return m_innerViewportContainerLayer.get(); 76 return m_innerViewportContainerLayer.get();
77 } 77 }
78 78
79 // Sets the location of the inner viewport relative to the outer viewport. T he 79 // Sets the location of the inner viewport relative to the outer viewport. T he
80 // coordinates are in partial CSS pixels. 80 // coordinates are in partial CSS pixels.
81 void setLocation(const FloatPoint&); 81 void setLocation(const FloatPoint&);
82 void move(const FloatPoint&); 82 void move(const FloatPoint&);
83 FloatPoint location() const { return m_offset; } 83 FloatPoint location() const { return m_offset; }
84 84
85 // Sets the size of the inner viewport when unscaled in CSS pixels. 85 // Sets the size of the inner viewport when unscaled in CSS pixels.
86 // This will be clamped to the size of the outer viewport (the main frame).
87 void setSize(const IntSize&); 86 void setSize(const IntSize&);
88 IntSize size() const { return m_size; } 87 IntSize size() const { return m_size; }
89 88
90 // Resets the viewport to initial state. 89 // Resets the viewport to initial state.
91 void reset(); 90 void reset();
92 91
93 // Let the viewport know that the main frame changed size (either through sc reen 92 // Let the viewport know that the main frame changed size (either through sc reen
94 // rotation on Android or window resize elsewhere). 93 // rotation on Android or window resize elsewhere).
95 void mainFrameDidChangeSize(); 94 void mainFrameDidChangeSize();
96 95
(...skipping 14 matching lines...) Expand all
111 110
112 // Scroll the main frame and pinch viewport so that the given rect in the 111 // Scroll the main frame and pinch viewport so that the given rect in the
113 // top-level document is centered in the viewport. This method will avoid 112 // top-level document is centered in the viewport. This method will avoid
114 // scrolling the pinch viewport unless necessary. 113 // scrolling the pinch viewport unless necessary.
115 void scrollIntoView(const FloatRect&); 114 void scrollIntoView(const FloatRect&);
116 115
117 // Clamp the given point, in document coordinates, to the maximum/minimum 116 // Clamp the given point, in document coordinates, to the maximum/minimum
118 // scroll extents of the viewport within the document. 117 // scroll extents of the viewport within the document.
119 IntPoint clampDocumentOffsetAtScale(const IntPoint& offset, float scale); 118 IntPoint clampDocumentOffsetAtScale(const IntPoint& offset, float scale);
120 119
120 // FIXME(bokan): This is kind of a hack. Ideally, we would just resize the
Rick Byers 2014/10/10 00:06:09 for better or worse, blink style is not to include
bokan 2014/10/10 14:39:56 Filed crbug.com/422328
121 // viewports to account for top controls. However, FrameView includes much
122 // more than just scrolling so we can't simply resize it without incurring
123 // all sorts of side-effects. Until we can seperate out the scrollability
124 // aspect from FrameView, we use this method to let PinchViewport make the
125 // necessary adjustments so that we don't incorrectly clamp scroll offsets
126 // coming from the compositor.
127 void setTopControlsAdjustment(float);
121 private: 128 private:
122 // ScrollableArea implementation 129 // ScrollableArea implementation
123 virtual bool isActive() const override { return false; } 130 virtual bool isActive() const override { return false; }
124 virtual int scrollSize(ScrollbarOrientation) const override; 131 virtual int scrollSize(ScrollbarOrientation) const override;
125 virtual bool isScrollCornerVisible() const override { return false; } 132 virtual bool isScrollCornerVisible() const override { return false; }
126 virtual IntRect scrollCornerRect() const override { return IntRect(); } 133 virtual IntRect scrollCornerRect() const override { return IntRect(); }
127 virtual IntPoint scrollPosition() const override { return flooredIntPoint(m_ offset); } 134 virtual IntPoint scrollPosition() const override { return flooredIntPoint(m_ offset); }
128 virtual IntPoint minimumScrollPosition() const override; 135 virtual IntPoint minimumScrollPosition() const override;
129 virtual IntPoint maximumScrollPosition() const override; 136 virtual IntPoint maximumScrollPosition() const override;
130 virtual int visibleHeight() const override { return visibleRect().height(); }; 137 virtual int visibleHeight() const override { return visibleRect().height(); };
(...skipping 29 matching lines...) Expand all
160 OwnPtr<GraphicsLayer> m_innerViewportScrollLayer; 167 OwnPtr<GraphicsLayer> m_innerViewportScrollLayer;
161 OwnPtr<GraphicsLayer> m_overlayScrollbarHorizontal; 168 OwnPtr<GraphicsLayer> m_overlayScrollbarHorizontal;
162 OwnPtr<GraphicsLayer> m_overlayScrollbarVertical; 169 OwnPtr<GraphicsLayer> m_overlayScrollbarVertical;
163 OwnPtr<blink::WebScrollbarLayer> m_webOverlayScrollbarHorizontal; 170 OwnPtr<blink::WebScrollbarLayer> m_webOverlayScrollbarHorizontal;
164 OwnPtr<blink::WebScrollbarLayer> m_webOverlayScrollbarVertical; 171 OwnPtr<blink::WebScrollbarLayer> m_webOverlayScrollbarVertical;
165 172
166 // Offset of the pinch viewport from the main frame's origin, in CSS pixels. 173 // Offset of the pinch viewport from the main frame's origin, in CSS pixels.
167 FloatPoint m_offset; 174 FloatPoint m_offset;
168 float m_scale; 175 float m_scale;
169 IntSize m_size; 176 IntSize m_size;
177 float m_topControlsAdjustment;
170 }; 178 };
171 179
172 } // namespace blink 180 } // namespace blink
173 181
174 #endif // PinchViewport_h 182 #endif // PinchViewport_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698