Title: [213826] releases/WebKitGTK/webkit-2.16/Source/WebCore
- Revision
- 213826
- Author
- [email protected]
- Date
- 2017-03-13 04:38:23 -0700 (Mon, 13 Mar 2017)
Log Message
Merge r213523 - Animated GIFs fail to play in multi-column layout
https://bugs.webkit.org/show_bug.cgi?id=167901
<rdar://problem/30382262>
Reviewed by Zalan Bujtas.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
Make sure to handle the case where we pass in a null repaintContainer and need
to cross a multicolumn flow thread -> region boundary as a result.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (213825 => 213826)
--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog 2017-03-13 11:34:42 UTC (rev 213825)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog 2017-03-13 11:38:23 UTC (rev 213826)
@@ -1,3 +1,16 @@
+2017-03-07 Dave Hyatt <[email protected]>
+
+ Animated GIFs fail to play in multi-column layout
+ https://bugs.webkit.org/show_bug.cgi?id=167901
+ <rdar://problem/30382262>
+
+ Reviewed by Zalan Bujtas.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeRectForRepaint):
+ Make sure to handle the case where we pass in a null repaintContainer and need
+ to cross a multicolumn flow thread -> region boundary as a result.
+
2017-03-07 Chris Dumez <[email protected]>
Align initEvent / initCustomEvent / initMessageEvent with the latest specification
Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp (213825 => 213826)
--- releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp 2017-03-13 11:34:42 UTC (rev 213825)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp 2017-03-13 11:38:23 UTC (rev 213826)
@@ -57,6 +57,7 @@
#include "RenderIterator.h"
#include "RenderLayer.h"
#include "RenderLayerCompositor.h"
+#include "RenderMultiColumnFlowThread.h"
#include "RenderNamedFlowFragment.h"
#include "RenderNamedFlowThread.h"
#include "RenderTableCell.h"
@@ -2293,6 +2294,21 @@
adjustedRect.expand(locationOffset - flooredLocationOffset);
locationOffset = flooredLocationOffset;
}
+
+ if (is<RenderMultiColumnFlowThread>(this)) {
+ // We won't normally run this code. Only when the repaintContainer is null (i.e., we're trying
+ // to get the rect in view coordinates) will we come in here, since normally repaintContainer
+ // will be set and we'll stop at the flow thread. This case is mainly hit by the check for whether
+ // or not images should animate.
+ // FIXME: Just as with offsetFromContainer, we aren't really handling objects that span
+ // multiple columns properly.
+ LayoutPoint physicalPoint(flipForWritingMode(adjustedRect.location()));
+ if (auto* region = downcast<RenderMultiColumnFlowThread>(*this).physicalTranslationFromFlowToRegion((physicalPoint))) {
+ adjustedRect.setLocation(region->flipForWritingMode(physicalPoint));
+ return region->computeRectForRepaint(adjustedRect, repaintContainer, context);
+ }
+ }
+
LayoutPoint topLeft = adjustedRect.location();
topLeft.move(locationOffset);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes