Bug 59046

Summary: With a non-1 page scale, scrolling to reveal selection fails
Product: WebKit Reporter: mitz
Component: New BugsAssignee: mitz
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, eric, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Other   
OS: OS X 10.5   
Attachments:
Description Flags
Patch mjs: review+

mitz
Reported 2011-04-20 17:17:19 PDT
With a non-1 page scale, scrolling to reveal selection fails
Attachments
Patch (5.88 KB, patch)
2011-04-20 18:57 PDT, mitz
mjs: review+
mitz
Comment 1 2011-04-20 18:55:07 PDT
mitz
Comment 2 2011-04-20 18:57:04 PDT
Maciej Stachowiak
Comment 3 2011-04-20 19:06:10 PDT
Comment on attachment 90474 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=90474&action=review r=me > Source/WebCore/rendering/RenderObject.cpp:1164 > if (!v->hasLayer() || !v->layer()->isComposited() || v->layer()->backing()->paintingGoesToWindow()) { > - v->repaintViewRectangle(r, immediate); > + IntRect repaintRectangle = r; > + if (v->hasLayer() && v->layer()->transform() && v->layer()->isComposited() && v->layer()->backing()->paintingGoesToWindow()) > + repaintRectangle = v->layer()->transform()->mapRect(r); > + v->repaintViewRectangle(repaintRectangle, immediate); The logic here is a bit squarely. You test some conditions and then similar or opposite looking ones right inside that if. I wonder if this can be refactored to be more clear, though I have no specific suggestions.
mitz
Comment 4 2011-04-20 19:11:19 PDT
(In reply to comment #3) > (From update of attachment 90474 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=90474&action=review > > r=me > > > Source/WebCore/rendering/RenderObject.cpp:1164 > > if (!v->hasLayer() || !v->layer()->isComposited() || v->layer()->backing()->paintingGoesToWindow()) { > > - v->repaintViewRectangle(r, immediate); > > + IntRect repaintRectangle = r; > > + if (v->hasLayer() && v->layer()->transform() && v->layer()->isComposited() && v->layer()->backing()->paintingGoesToWindow()) > > + repaintRectangle = v->layer()->transform()->mapRect(r); > > + v->repaintViewRectangle(repaintRectangle, immediate); > > The logic here is a bit squarely. You test some conditions and then similar or opposite looking ones right inside that if. I wonder if this can be refactored to be more clear, though I have no specific suggestions. I can (and will) remove the “ && v->layer()->backing()->paintingGoesToWindow()” part, because it’s redundant, and add a local boolean variable for v->hasLayer() && v->layer()->isComposited()
mitz
Comment 5 2011-04-20 19:14:02 PDT
WebKit Review Bot
Comment 6 2011-04-20 20:02:17 PDT
http://trac.webkit.org/changeset/84454 might have broken Qt Linux Release The following tests are not passing: fast/transforms/selection-bounds-in-transformed-view.html
Note You need to log in before you can comment on or make changes to this bug.