[webkit-dev] Scrolling / redraw issue on WinCE platform

Brent Fulgham bfulgham at gmail.com
Mon Jan 11 11:29:43 PST 2010


Hi Jason,

On Mon, Jan 11, 2010 at 10:53 AM, Jason Rukman <JasonR at bsquare.com> wrote:
> Actually SetGraphicsMode is not available at all on WinCE so I've
> disabled this in a number of places; however, I've also tested that none
> of these disabled locations are being hit at this point.

I found them mainly by noticing problems like you describe.  For
example, I had a terrible problem where scrolling the page up/down
resulted in what appeared to be partial repaints of the screen.  For a
long time I thought that the contents were being drawn 'invisibly'
because I could highlight regions of the page and the contents would
suddenly appear.

It turned out that the World Transform was not being kept in sync with
various translation changes in the Cairo drawing context, so the
backing store did not match what was meant to appear on screen
resulting in the bizarre behavior I observed.

It might be that parts of the system are translating the XFORM,
expecting future draw events to be making use of this XFORM change.
If the XFORM is never updated (since you don't have SetGraphicsMode),
the widget continues to be drawn in the same spot.

I'd be on the lookout for places where TransformationMatrix is used,
as this is the 'generic' structure used throughout the core.  Maybe
one or two of these are tasked with your scroll translation, and are
not getting used.  In this case, you'll have to adjust the rect used
for drawing manually.

-Brent


More information about the webkit-dev mailing list