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

Jason Rukman JasonR at bsquare.com
Mon Jan 11 10:53:36 PST 2010

Hi Brent,

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.

How did you find out these places where the World Transform (XFORM)
didn't match up?  I'd like to try find the same thing.

Thanks for the idea!


-----Original Message-----
From: Brent Fulgham [mailto:bfulgham at gmail.com] 
Sent: Monday, January 11, 2010 9:48 AM
To: Jason Rukman
Cc: webkit-dev at lists.webkit.org
Subject: Re: [webkit-dev] Scrolling / redraw issue on WinCE platform

Hi Jason,

On Fri, Jan 8, 2010 at 11:14 AM, Jason Rukman <JasonR at bsquare.com>
> I'm working on a port of webKit to WinCE, and am currently
encountering what appears to be a
> redraw/paint issue when scrolling (horizontally, in this case) to a
widget that is originally partially
> off-screen (an input button in a form). The text all appears to scroll
just fine, and the image of the
> start of the button (which is initially on screen) is moved correctly
as well through the backingStore.
> However, when a paintButton is issued, the button appears in the same
location on the screen
> post-scroll as it does pre-scroll, i.e. in the same position and still
partially off the screen, even
> though the rest of the screen has scrolled.

I haven't looked at your code, but on the Windows Cairo port I have
run into several cases where the GDI World Transform has not been kept
in sync with  the additional graphics libraries used to draw widgets.
For example, I ran into some cases where the XFORM was not updated for
some drawing, even though the Cairo graphics context was adjusted to
take into account translation or scaling effects.

It could be that your port (which probably uses *only* GDI) may be
touching an area of code where some kind of coordinate transform is
needed, but has not been handled at the root XFORM level, relying on
CoreGraphics, Cairo, etc., to actually shift the drawing context in
some fashion before drawing.

Oh, there were a few places where the "SetGraphicsMode(dc,
GM_ADVANCED)" was needed to ensure that coordinate transforms were
being honored.

Just my quick 2 cents, but might be a good place to start.


More information about the webkit-dev mailing list