Bug 48444 - Fix the dirty rect checks in RenderBoxLineList, InlineFlowBox, InlineTextBox
Summary: Fix the dirty rect checks in RenderBoxLineList, InlineFlowBox, InlineTextBox
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Dave Hyatt
URL:
Keywords:
Depends on:
Blocks: 46123
  Show dependency treegraph
 
Reported: 2010-10-27 11:05 PDT by Dave Hyatt
Modified: 2010-10-29 15:21 PDT (History)
1 user (show)

See Also:


Attachments
Patch (13.67 KB, patch)
2010-10-29 12:56 PDT, Dave Hyatt
aroben: review+
Details | Formatted Diff | Diff
Platform/mac image (expected) (28.36 KB, image/png)
2010-10-29 15:20 PDT, Dmitry Titov
no flags Details
Actual file as DRT produces (14.40 KB, image/png)
2010-10-29 15:21 PDT, Dmitry Titov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Hyatt 2010-10-27 11:05:46 PDT
Fix the dirty rect checks in RenderBoxLineList, InlineFlowBox, InlineTextBox.  They're hardcoded to assume horizontal-tb writing-mode right now.
Comment 1 Dave Hyatt 2010-10-29 12:56:02 PDT
Created attachment 72376 [details]
Patch
Comment 2 Adam Roben (:aroben) 2010-10-29 13:12:52 PDT
Comment on attachment 72376 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=72376&action=review

> WebCore/rendering/RenderBox.h:382
> +    int convertFromFlippedWritingMode(int);

I think a parameter name here would be helpful.

Should this instead have a name like "convertFromLogicalToPhysicalVerticalPosition" or just "toPhysicalVerticalPosition"?

> WebCore/rendering/RenderLineBoxList.cpp:173
> +bool RenderLineBoxList::anyLinesIntersectDirtyRect(RenderBoxModelObject* renderer, const PaintInfo& paintInfo, int tx, int ty, bool usePrintRect) const

I might have moved the "s" from "Lines" to "Intersect": anyLineIntersectsDirtyRect.

> WebCore/rendering/RenderLineBoxList.h:74
>  private:
> +    bool anyLinesIntersectDirtyRect(RenderBoxModelObject*, const PaintInfo&, int x, int y, bool usePrintRect) const;
> +    bool lineIntersectsDirtyRect(RenderBoxModelObject*, InlineFlowBox*, const PaintInfo&, int x, int y) const;
> +    bool rangeIntersectsDirtyRect(RenderBoxModelObject*, int logicalTop, int logicalBottom, const PaintInfo&, int x, int y) const;
> +
> +private:

What's with the double private:?
Comment 3 Dave Hyatt 2010-10-29 13:26:12 PDT
Fixed in r70917.
Comment 4 Dmitry Titov 2010-10-29 15:18:57 PDT
This seem to brake image compare for fast/blockflow/english-rl-text.html.

To repro, run this on post-70917 WebKit, nac build:
run-webkit-tests -p LayoutTests/fast/blockflow/english-rl-text.html

I'll attach 2 images in a second.
Comment 5 Dmitry Titov 2010-10-29 15:20:16 PDT
Created attachment 72403 [details]
Platform/mac image (expected)
Comment 6 Dmitry Titov 2010-10-29 15:21:03 PDT
Created attachment 72405 [details]
Actual file as DRT produces