Summary: | [WK1] Fixed-position elements jiggle up and down slightly during scrolling on a Retina display | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Adam Roben (:aroben) <aroben> | ||||||||
Component: | Layout and Rendering | Assignee: | Adam Roben (:aroben) <aroben> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | andersca, bdakin, dbates, simon.fraser, webkit.review.bot | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Mac (Intel) | ||||||||||
OS: | OS X 10.8 | ||||||||||
Attachments: |
|
This even happens waaaaaay back in the r37376 nightly build. The bug gets worse if the fixed-position element has -webkit-transform:translate3d(0,0,0) applied to it. Then it jiggles by two device pixels instead of one. Adam Roben!! I could have sworn we fixed this. Simon, did we fix this? Turning off Settings::setFixedPositionCreatesStackingContext does not fix this. Simon helped us realize that WebKit2 only scrolls by full pixels, even in Retina mode, while AppKit will scroll by half-pixels in Retina mode. WebCore can only represent full pixels at the moment, so this is probably the source of the bug. Ah yes, this is in Radar as <rdar://problem/11244706> Created attachment 171899 [details]
Patch
Comment on attachment 171899 [details]
Patch
It seems unfortunate to impact the scrolling behavior of every app using WK1, whether or not they have fixed position elements. Maybe this should be opt-in somehow?
Created attachment 171904 [details]
Patch
OK, added a new patch that only affects pages with position:fixed or position:sticky elements. It is not currently opt-in. Simon, were you imagining a new preference key? Or some other opt-in mechanism? Comment on attachment 171904 [details] Patch Clearing flags on attachment: 171904 Committed r133225: <http://trac.webkit.org/changeset/133225> All reviewed patches have been landed. Closing bug. |
Created attachment 171842 [details] testcase To reproduce: 1. Set your display to a Retina resolution 2. Load the attached test case in WebKit1 3. Scroll up and down a bit The fixed div jiggles up and down slightly while scrolling. This does not happen in WebKit2.