On Mon, Apr 13, 2009 at 12:19 PM, Adam Langley <a...@chromium.org> wrote:

> On Mon, Apr 13, 2009 at 11:47 AM, Peter Kasting <pkast...@google.com>
> wrote:
> > The issue I'm fixing is that if we get an updated rect from the renderer
> > while DidPaintRect() is disabled, we don't repaint any extra damaged area
> in
> > that rect until the next time it happens to get damaged, because we don't
> > send anyone any notifications.  This is because we were putting in an
> > anti-recursion check in the "model" when instead it should have been in
> the
> > "view".
>
> I always thought that, when we paint without a backing store, we're
> painting the whole thing so this isn't an issue.


If you mean "what happens whet GetBackingStore() can't get a new store", I
believe it returns the old (known-to-be-out-of-date) backing store, and we
just paint the original damage rect, because we expect that when the updated
store finally comes in, it will call DidPaintRect() and trigger a repaint
with the new store.  The edge here was that if the new store came in while
processing this call, DidPaintRect() wouldn't get called, and while we'd be
returning the new store, we'd still be painting the old damage rect, which
might be too small.

Your patch looks like it'll do the right thing, at a glance.  I'll add it in
to mine and make sure it passes a Linux try run.  Thanks!

PK

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to