Changeset 73245 in webkit


Ignore:
Timestamp:
Dec 2, 2010 11:44:47 PM (13 years ago)
Author:
aa@chromium.org
Message:

2010-12-02 Aaron Boodman <aa@chromium.org>

Reviewed by David Hyatt.

Reduce the number of cases where we end up with a stale value for
minimumPreferredLogicalWidth(). This isn't a complete fix, but fixes a
large number of cases.

RenderObject::minimumPreferredLogicalWidth() sometimes reports wrong value.
https://bugs.webkit.org/show_bug.cgi?id=50119

  • rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r73244 r73245  
     12010-12-02  Aaron Boodman  <aa@chromium.org>
     2
     3        Reviewed by David Hyatt.
     4
     5        Reduce the number of cases where we end up with a stale value for
     6        minimumPreferredLogicalWidth(). This isn't a complete fix, but fixes a
     7        large number of cases.
     8
     9        RenderObject::minimumPreferredLogicalWidth() sometimes reports wrong value.
     10        https://bugs.webkit.org/show_bug.cgi?id=50119
     11
     12        * rendering/RenderBox.cpp:
     13        (WebCore::RenderBox::styleDidChange):
     14
    1152010-12-02  Gregg Tavares  <gman@google.com>
    216
  • trunk/WebCore/rendering/RenderBox.cpp

    r73063 r73245  
    307307    if (isBodyRenderer)
    308308        document()->setTextColor(style()->visitedDependentColor(CSSPropertyColor));
    309    
    310     if ((isRootRenderer || isBodyRenderer) && (!oldStyle || oldStyle->writingMode() != style()->writingMode() || oldStyle->direction() != style()->direction())) {
     309
     310    if (isRootRenderer || isBodyRenderer) {
    311311        // Propagate the new writing mode and direction up to the RenderView.
    312312        RenderView* viewRenderer = view();
    313313        RenderStyle* viewStyle = viewRenderer->style();
    314         if (isRootRenderer || !document()->directionSetOnDocumentElement()) {
     314        if (viewStyle->direction() != style()->direction() && (isRootRenderer || !document()->directionSetOnDocumentElement())) {
    315315            viewStyle->setDirection(style()->direction());
    316316            if (isBodyRenderer)
    317317                document()->documentElement()->renderer()->style()->setDirection(style()->direction());
    318         }
    319        
    320         if (isRootRenderer || !document()->writingModeSetOnDocumentElement()) {
     318            setNeedsLayoutAndPrefWidthsRecalc();
     319        }
     320
     321        if (viewStyle->writingMode() != style()->writingMode() && (isRootRenderer || !document()->writingModeSetOnDocumentElement())) {
    321322            viewStyle->setWritingMode(style()->writingMode());
    322323            if (isBodyRenderer)
    323324                document()->documentElement()->renderer()->style()->setWritingMode(style()->writingMode());
    324         }
    325         setNeedsLayoutAndPrefWidthsRecalc();
     325            setNeedsLayoutAndPrefWidthsRecalc();
     326        }
    326327    }
    327328}
Note: See TracChangeset for help on using the changeset viewer.