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

Brent Fulgham bfulgham at gmail.com
Mon Jan 11 09:48:10 PST 2010


Hi Jason,

On Fri, Jan 8, 2010 at 11:14 AM, Jason Rukman <JasonR at bsquare.com> wrote:
> 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.

-Brent


More information about the webkit-dev mailing list