Bug 23220 - Roll layoutDelta into layoutState
Summary: Roll layoutDelta into layoutState
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
Depends on:
Blocks: 23233
  Show dependency treegraph
Reported: 2009-01-09 16:55 PST by Simon Fraser (smfr)
Modified: 2009-01-12 13:42 PST (History)
2 users (show)

See Also:

Patch, changelog (18.92 KB, patch)
2009-01-12 12:09 PST, Simon Fraser (smfr)
mitz: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2009-01-09 16:55:31 PST
RenderView has the notion of "layoutDelta", which is an offset applied to repaint rects to account for objects which have been moved or resized during layout.

RenderView also maintains a LayoutState stack, which is a stack of cached offsets and clip rects used to optimize repainting.

layoutDelta should be merged with LayoutState.

We'd have to figure out what it means to disable layoutState though.
Comment 1 Simon Fraser (smfr) 2009-01-12 12:09:15 PST
Created attachment 26639 [details]
Patch, changelog
Comment 2 mitz 2009-01-12 12:19:56 PST
Comment on attachment 26639 [details]
Patch, changelog

> +    RenderView* v;
> +    if ((v = view()) && v->layoutStateEnabled()) {

Even though it increases the maximum indentation, I am not sure I like this change, because it moves v outside the scope of the if statement.

Comment 3 Simon Fraser (smfr) 2009-01-12 13:42:57 PST
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/rendering/LayoutState.cpp
	M	WebCore/rendering/LayoutState.h
	M	WebCore/rendering/RenderBlock.cpp
	M	WebCore/rendering/RenderBox.cpp
	M	WebCore/rendering/RenderFlexibleBox.cpp
	M	WebCore/rendering/RenderFlow.cpp
	M	WebCore/rendering/RenderLayer.cpp
	M	WebCore/rendering/RenderTableCell.cpp
	M	WebCore/rendering/RenderView.cpp
	M	WebCore/rendering/RenderView.h
	M	WebCore/rendering/bidi.cpp
Committed r39834