Bug 111662

Summary: [wk2] Page overlays shouldn't dirty the entire layer when flushing if the main frame can't scroll
Product: WebKit Reporter: Tim Horton <thorton>
Component: WebKit2Assignee: Tim Horton <thorton>
Status: RESOLVED FIXED    
Severity: Normal CC: andersca, simon.fraser, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 111945    
Bug Blocks:    
Attachments:
Description Flags
patch
simon.fraser: review+
better patch! dino: review+

Description Tim Horton 2013-03-06 19:01:41 PST
We currently setNeedsDisplay() on the whole page overlay layer every time through TCADA::flushLayers. This is necessary to keep things painted in the right place when we scroll, but is quite wasteful in apps that don’t scroll.

Instead, we can setNeedsDisplay() at scroll time instead. Testing with the Find overlay and other Safari overlays seems to work.

<rdar://problem/13355808>
Comment 1 Tim Horton 2013-03-06 19:05:00 PST
Created attachment 191891 [details]
patch
Comment 2 Simon Fraser (smfr) 2013-03-06 19:16:41 PST
Comment on attachment 191891 [details]
patch

Yay
Comment 3 Tim Horton 2013-03-06 22:01:05 PST
http://trac.webkit.org/changeset/145039
Comment 4 WebKit Review Bot 2013-03-10 12:23:44 PDT
Re-opened since this is blocked by bug 111945
Comment 5 Tim Horton 2013-03-21 16:39:26 PDT
Created attachment 194381 [details]
better patch!
Comment 6 Dean Jackson 2013-03-21 16:42:18 PDT
Comment on attachment 194381 [details]
better patch!

you said you'd remove local var on irc
Comment 7 Tim Horton 2013-03-21 16:50:32 PDT
http://trac.webkit.org/changeset/146539