Title: [151564] trunk/Source/WebCore
Revision
151564
Author
[email protected]
Date
2013-06-13 11:22:23 -0700 (Thu, 13 Jun 2013)

Log Message

Headers and footers should be pinned to the left edge of the window when scrolling 
horizontally, even when zoomed
https://bugs.webkit.org/show_bug.cgi?id=117562
-and corresponding-
<rdar://problem/14006745>

Reviewed by Sam Weinig.

We really want to use the width value from scrollOffsetForFixedPosition() for the 
banner with a scaled factor of 1. So if there is a different scale factor, re-
compute this value specifically for the banners. 
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (151563 => 151564)


--- trunk/Source/WebCore/ChangeLog	2013-06-13 18:13:25 UTC (rev 151563)
+++ trunk/Source/WebCore/ChangeLog	2013-06-13 18:22:23 UTC (rev 151564)
@@ -1,3 +1,19 @@
+2013-06-13  Beth Dakin  <[email protected]>
+
+        Headers and footers should be pinned to the left edge of the window when scrolling 
+        horizontally, even when zoomed
+        https://bugs.webkit.org/show_bug.cgi?id=117562
+        -and corresponding-
+        <rdar://problem/14006745>
+
+        Reviewed by Sam Weinig.
+
+        We really want to use the width value from scrollOffsetForFixedPosition() for the 
+        banner with a scaled factor of 1. So if there is a different scale factor, re-
+        compute this value specifically for the banners. 
+        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
+
 2013-06-13  Christophe Dumez  <[email protected]>
 
         Support byte and octet types in bindings generators

Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm (151563 => 151564)


--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm	2013-06-13 18:13:25 UTC (rev 151563)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm	2013-06-13 18:22:23 UTC (rev 151564)
@@ -315,11 +315,18 @@
     if (m_counterScrollingLayer)
         m_counterScrollingLayer.get().position = FloatPoint(scrollOffsetForFixedChildren);
 
+    // Generally the banners should have the same horizontal-position computation as a fixed element. However,
+    // the banners are not affected by the frameScaleFactor(), so if there is currently a non-1 frameScaleFactor()
+    // then we should recompute scrollOffsetForFixedChildren for the banner with a scale factor of 1.
+    float horizontalScrollOffsetForBanner = scrollOffsetForFixedChildren.width();
+    if (frameScaleFactor() != 1)
+        horizontalScrollOffsetForBanner = FrameView::scrollOffsetForFixedPosition(viewportRect(), totalContentsSize(), position, scrollOrigin(), 1, false, headerHeight(), footerHeight()).width();
+
     if (m_headerLayer)
-        m_headerLayer.get().position = FloatPoint(scrollOffsetForFixedChildren.width(), 0);
+        m_headerLayer.get().position = FloatPoint(horizontalScrollOffsetForBanner, 0);
 
     if (m_footerLayer)
-        m_footerLayer.get().position = FloatPoint(scrollOffsetForFixedChildren.width(), totalContentsSize().height() - footerHeight());
+        m_footerLayer.get().position = FloatPoint(horizontalScrollOffsetForBanner, totalContentsSize().height() - footerHeight());
 
     if (!m_children)
         return;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to