summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/nav
diff options
context:
space:
mode:
authorTeng-Hui Zhu <ztenghui@google.com>2012-04-11 16:52:37 -0700
committerTeng-Hui Zhu <ztenghui@google.com>2012-04-11 17:04:38 -0700
commitd08dc21a96bd91ee23a4419266186cadb4b43681 (patch)
treeba7f7aaa045dfc90cc19a2e3fd46225b88dc1d9e /Source/WebKit/android/nav
parent9b0332227d1f5d644e78f417c54ae1ec86ecaa1c (diff)
downloadexternal_webkit-d08dc21a96bd91ee23a4419266186cadb4b43681.zip
external_webkit-d08dc21a96bd91ee23a4419266186cadb4b43681.tar.gz
external_webkit-d08dc21a96bd91ee23a4419266186cadb4b43681.tar.bz2
Correct viewport for GL drawing when webview is on FBO
bug:6283539 Change-Id: I0d5fb92a9ad7e8b6781900bbc08e5afd48c53614
Diffstat (limited to 'Source/WebKit/android/nav')
-rw-r--r--Source/WebKit/android/nav/WebView.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp
index a4381e6..0cf0079 100644
--- a/Source/WebKit/android/nav/WebView.cpp
+++ b/Source/WebKit/android/nav/WebView.cpp
@@ -709,13 +709,17 @@ class GLDrawFunctor : Functor {
int titlebarHeight = webViewRect.height() - viewRect.height();
uirenderer::DrawGlInfo* info = reinterpret_cast<uirenderer::DrawGlInfo*>(data);
- WebCore::IntRect localViewRect = viewRect;
- if (info->isLayer)
- localViewRect.move(-1 * localViewRect.x(), -1 * localViewRect.y());
-
WebCore::IntRect clip(info->clipLeft, info->clipTop,
info->clipRight - info->clipLeft,
info->clipBottom - info->clipTop);
+
+ WebCore::IntRect localViewRect = viewRect;
+ if (info->isLayer) {
+ // When webview is on a layer, we need to use the viewport relative
+ // to the FBO, rather than the screen(which will use viewRect).
+ localViewRect.setX(clip.x());
+ localViewRect.setY(info->height - clip.y() - clip.height());
+ }
bool shouldDraw = (messageId == uirenderer::DrawGlInfo::kModeDraw);
TilesManager::instance()->shader()->setWebViewMatrix(info->transform, info->isLayer);
int returnFlags = (*wvInstance.*funcPtr)(localViewRect, &inval, webViewRect,