⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 167771 in webkit


Ignore:
Timestamp:
Apr 24, 2014, 1:46:26 PM (12 years ago)
Author:
Alan Bujtas
Message:

Subpixel rendering: Clipping on text areas when shifted by one device pixel.
https://bugs.webkit.org/show_bug.cgi?id=132008

Reviewed by Darin Adler.

Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
other theme controls are still on integral size/positions.

Source/WebCore:
Test: fast/forms/hidpi-textarea-on-subpixel-position.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintTextField):
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextArea):
(WebCore::RenderTheme::paintTextAreaDecorations):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintTextFieldDecorations):
(WebCore::RenderThemeIOS::paintTextAreaDecorations):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintTextArea):

LayoutTests:

  • fast/forms/hidpi-textarea-on-subpixel-position-expected.html: Added.
  • fast/forms/hidpi-textarea-on-subpixel-position.html: Added.
  • platform/mac-wk2/TestExpectations: Due to defective RenderLayer cliprect calculation (WK2 only): webkit.org/b/132100
Location:
trunk
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r167769 r167771  
     12014-04-24  Zalan Bujtas  <zalan@apple.com>
     2
     3        Subpixel rendering: Clipping on text areas when shifted by one device pixel.
     4        https://bugs.webkit.org/show_bug.cgi?id=132008
     5
     6        Reviewed by Darin Adler.
     7
     8        Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
     9        other theme controls are still on integral size/positions.
     10
     11        * fast/forms/hidpi-textarea-on-subpixel-position-expected.html: Added.
     12        * fast/forms/hidpi-textarea-on-subpixel-position.html: Added.
     13        * platform/mac-wk2/TestExpectations: Due to defective RenderLayer cliprect calculation (WK2 only): webkit.org/b/132100
     14
    1152014-04-24  Eduardo Lima Mitev  <elima@igalia.com>
    216
  • trunk/LayoutTests/platform/mac-wk2/TestExpectations

    r167701 r167771  
    350350webkit.org/b/131477 fast/repaint/obscured-background-no-repaint.html [ Pass Failure ]
    351351
     352# Subpixel wrong cliprect on WK2
     353webkit.org/b/132100 fast/forms/hidpi-textarea-on-subpixel-position.html [ ImageOnlyFailure ]
     354
    352355### END OF (1) Classified failures with bug reports
    353356########################################
  • trunk/Source/WebCore/ChangeLog

    r167768 r167771  
     12014-04-24  Zalan Bujtas  <zalan@apple.com>
     2
     3        Subpixel rendering: Clipping on text areas when shifted by one device pixel.
     4        https://bugs.webkit.org/show_bug.cgi?id=132008
     5
     6        Reviewed by Darin Adler.
     7
     8        Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
     9        other theme controls are still on integral size/positions.
     10
     11        Test: fast/forms/hidpi-textarea-on-subpixel-position.html
     12
     13        * rendering/RenderBox.cpp:
     14        (WebCore::RenderBox::paintBoxDecorations):
     15        * rendering/RenderTheme.cpp:
     16        (WebCore::RenderTheme::paint):
     17        (WebCore::RenderTheme::paintBorderOnly):
     18        (WebCore::RenderTheme::paintDecorations):
     19        * rendering/RenderTheme.h:
     20        (WebCore::RenderTheme::paintTextField):
     21        (WebCore::RenderTheme::paintTextFieldDecorations):
     22        (WebCore::RenderTheme::paintTextArea):
     23        (WebCore::RenderTheme::paintTextAreaDecorations):
     24        * rendering/RenderThemeIOS.h:
     25        * rendering/RenderThemeIOS.mm:
     26        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
     27        (WebCore::RenderThemeIOS::paintTextAreaDecorations):
     28        * rendering/RenderThemeMac.h:
     29        * rendering/RenderThemeMac.mm:
     30        (WebCore::RenderThemeMac::paintTextField):
     31        (WebCore::RenderThemeMac::paintTextArea):
     32
    1332014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>
    234
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r167755 r167771  
    12161216    // If we have a native theme appearance, paint that before painting our background.
    12171217    // The theme will tell us whether or not we should also paint the CSS background.
    1218     IntRect snappedPaintRect(pixelSnappedIntRect(paintRect));
    1219 
    12201218    ControlStates* controlStates = nullptr;
    12211219    if (style().hasAppearance()) {
     
    12281226    }
    12291227
    1230     bool themePainted = style().hasAppearance() && !theme().paint(*this, controlStates, paintInfo, snappedPaintRect);
     1228    bool themePainted = style().hasAppearance() && !theme().paint(*this, controlStates, paintInfo, paintRect);
    12311229
    12321230    if (controlStates && controlStates->needsRepaint())
     
    12401238
    12411239        if (style().hasAppearance())
    1242             theme().paintDecorations(*this, paintInfo, snappedPaintRect);
     1240            theme().paintDecorations(*this, paintInfo, paintRect);
    12431241    }
    12441242    paintBoxShadow(paintInfo, paintRect, style(), Inset);
    12451243
    12461244    // The theme will tell us whether or not we should also paint the CSS border.
    1247     if (bleedAvoidance != BackgroundBleedBackgroundOverBorder && (!style().hasAppearance() || (!themePainted && theme().paintBorderOnly(*this, paintInfo, snappedPaintRect))) && style().hasBorder())
     1245    if (bleedAvoidance != BackgroundBleedBackgroundOverBorder && (!style().hasAppearance() || (!themePainted && theme().paintBorderOnly(*this, paintInfo, paintRect))) && style().hasBorder())
    12481246        paintBorder(paintInfo, paintRect, style(), bleedAvoidance);
    12491247
  • trunk/Source/WebCore/rendering/RenderTheme.cpp

    r167755 r167771  
    264264}
    265265
    266 bool RenderTheme::paint(const RenderObject& o, ControlStates* controlStates, const PaintInfo& paintInfo, const IntRect& r)
     266bool RenderTheme::paint(const RenderObject& o, ControlStates* controlStates, const PaintInfo& paintInfo, const LayoutRect& r)
    267267{
    268268    // If painting is disabled, but we aren't updating control tints, then just bail.
     
    278278
    279279    ControlPart part = o.style().appearance();
     280    IntRect integralSnappedRect = pixelSnappedIntRect(r);
    280281
    281282#if USE(NEW_THEME)
     
    289290    case InnerSpinButtonPart:
    290291        updateControlStatesForRenderer(o, controlStates);
    291         m_theme->paint(part, controlStates, const_cast<GraphicsContext*>(paintInfo.context), r, o.style().effectiveZoom(), &o.view().frameView());
     292        m_theme->paint(part, controlStates, const_cast<GraphicsContext*>(paintInfo.context), integralSnappedRect, o.style().effectiveZoom(), &o.view().frameView());
    292293        return false;
    293294    default:
     
    302303#if !USE(NEW_THEME)
    303304    case CheckboxPart:
    304         return paintCheckbox(o, paintInfo, r);
     305        return paintCheckbox(o, paintInfo, integralSnappedRect);
    305306    case RadioPart:
    306         return paintRadio(o, paintInfo, r);
     307        return paintRadio(o, paintInfo, integralSnappedRect);
    307308    case PushButtonPart:
    308309    case SquareButtonPart:
    309310    case DefaultButtonPart:
    310311    case ButtonPart:
    311         return paintButton(o, paintInfo, r);
     312        return paintButton(o, paintInfo, integralSnappedRect);
    312313    case InnerSpinButtonPart:
    313         return paintInnerSpinButton(o, paintInfo, r);
     314        return paintInnerSpinButton(o, paintInfo, integralSnappedRect);
    314315#endif
    315316    case MenulistPart:
    316         return paintMenuList(o, paintInfo, r);
     317        return paintMenuList(o, paintInfo, integralSnappedRect);
    317318#if ENABLE(METER_ELEMENT)
    318319    case MeterPart:
     
    321322    case DiscreteCapacityLevelIndicatorPart:
    322323    case RatingLevelIndicatorPart:
    323         return paintMeter(o, paintInfo, r);
     324        return paintMeter(o, paintInfo, integralSnappedRect);
    324325#endif
    325326#if ENABLE(PROGRESS_ELEMENT)
    326327    case ProgressBarPart:
    327         return paintProgressBar(o, paintInfo, r);
     328        return paintProgressBar(o, paintInfo, integralSnappedRect);
    328329#endif
    329330    case SliderHorizontalPart:
    330331    case SliderVerticalPart:
    331         return paintSliderTrack(o, paintInfo, r);
     332        return paintSliderTrack(o, paintInfo, integralSnappedRect);
    332333    case SliderThumbHorizontalPart:
    333334    case SliderThumbVerticalPart:
    334         return paintSliderThumb(o, paintInfo, r);
     335        return paintSliderThumb(o, paintInfo, integralSnappedRect);
    335336    case MediaEnterFullscreenButtonPart:
    336337    case MediaExitFullscreenButtonPart:
    337         return paintMediaFullscreenButton(o, paintInfo, r);
     338        return paintMediaFullscreenButton(o, paintInfo, integralSnappedRect);
    338339    case MediaPlayButtonPart:
    339         return paintMediaPlayButton(o, paintInfo, r);
     340        return paintMediaPlayButton(o, paintInfo, integralSnappedRect);
    340341    case MediaOverlayPlayButtonPart:
    341         return paintMediaOverlayPlayButton(o, paintInfo, r);
     342        return paintMediaOverlayPlayButton(o, paintInfo, integralSnappedRect);
    342343    case MediaMuteButtonPart:
    343         return paintMediaMuteButton(o, paintInfo, r);
     344        return paintMediaMuteButton(o, paintInfo, integralSnappedRect);
    344345    case MediaSeekBackButtonPart:
    345         return paintMediaSeekBackButton(o, paintInfo, r);
     346        return paintMediaSeekBackButton(o, paintInfo, integralSnappedRect);
    346347    case MediaSeekForwardButtonPart:
    347         return paintMediaSeekForwardButton(o, paintInfo, r);
     348        return paintMediaSeekForwardButton(o, paintInfo, integralSnappedRect);
    348349    case MediaRewindButtonPart:
    349         return paintMediaRewindButton(o, paintInfo, r);
     350        return paintMediaRewindButton(o, paintInfo, integralSnappedRect);
    350351    case MediaReturnToRealtimeButtonPart:
    351         return paintMediaReturnToRealtimeButton(o, paintInfo, r);
     352        return paintMediaReturnToRealtimeButton(o, paintInfo, integralSnappedRect);
    352353    case MediaToggleClosedCaptionsButtonPart:
    353         return paintMediaToggleClosedCaptionsButton(o, paintInfo, r);
     354        return paintMediaToggleClosedCaptionsButton(o, paintInfo, integralSnappedRect);
    354355    case MediaSliderPart:
    355         return paintMediaSliderTrack(o, paintInfo, r);
     356        return paintMediaSliderTrack(o, paintInfo, integralSnappedRect);
    356357    case MediaSliderThumbPart:
    357         return paintMediaSliderThumb(o, paintInfo, r);
     358        return paintMediaSliderThumb(o, paintInfo, integralSnappedRect);
    358359    case MediaVolumeSliderMuteButtonPart:
    359         return paintMediaMuteButton(o, paintInfo, r);
     360        return paintMediaMuteButton(o, paintInfo, integralSnappedRect);
    360361    case MediaVolumeSliderContainerPart:
    361         return paintMediaVolumeSliderContainer(o, paintInfo, r);
     362        return paintMediaVolumeSliderContainer(o, paintInfo, integralSnappedRect);
    362363    case MediaVolumeSliderPart:
    363         return paintMediaVolumeSliderTrack(o, paintInfo, r);
     364        return paintMediaVolumeSliderTrack(o, paintInfo, integralSnappedRect);
    364365    case MediaVolumeSliderThumbPart:
    365         return paintMediaVolumeSliderThumb(o, paintInfo, r);
     366        return paintMediaVolumeSliderThumb(o, paintInfo, integralSnappedRect);
    366367    case MediaFullScreenVolumeSliderPart:
    367         return paintMediaFullScreenVolumeSliderTrack(o, paintInfo, r);
     368        return paintMediaFullScreenVolumeSliderTrack(o, paintInfo, integralSnappedRect);
    368369    case MediaFullScreenVolumeSliderThumbPart:
    369         return paintMediaFullScreenVolumeSliderThumb(o, paintInfo, r);
     370        return paintMediaFullScreenVolumeSliderThumb(o, paintInfo, integralSnappedRect);
    370371    case MediaTimeRemainingPart:
    371         return paintMediaTimeRemaining(o, paintInfo, r);
     372        return paintMediaTimeRemaining(o, paintInfo, integralSnappedRect);
    372373    case MediaCurrentTimePart:
    373         return paintMediaCurrentTime(o, paintInfo, r);
     374        return paintMediaCurrentTime(o, paintInfo, integralSnappedRect);
    374375    case MediaControlsBackgroundPart:
    375         return paintMediaControlsBackground(o, paintInfo, r);
     376        return paintMediaControlsBackground(o, paintInfo, integralSnappedRect);
    376377    case MenulistButtonPart:
    377378    case TextFieldPart:
     
    380381        return true;
    381382    case SearchFieldPart:
    382         return paintSearchField(o, paintInfo, r);
     383        return paintSearchField(o, paintInfo, integralSnappedRect);
    383384    case SearchFieldCancelButtonPart:
    384         return paintSearchFieldCancelButton(o, paintInfo, r);
     385        return paintSearchFieldCancelButton(o, paintInfo, integralSnappedRect);
    385386    case SearchFieldDecorationPart:
    386         return paintSearchFieldDecorationPart(o, paintInfo, r);
     387        return paintSearchFieldDecorationPart(o, paintInfo, integralSnappedRect);
    387388    case SearchFieldResultsDecorationPart:
    388         return paintSearchFieldResultsDecorationPart(o, paintInfo, r);
     389        return paintSearchFieldResultsDecorationPart(o, paintInfo, integralSnappedRect);
    389390    case SearchFieldResultsButtonPart:
    390         return paintSearchFieldResultsButton(o, paintInfo, r);
     391        return paintSearchFieldResultsButton(o, paintInfo, integralSnappedRect);
    391392    case SnapshottedPluginOverlayPart:
    392         return paintSnapshottedPluginOverlay(o, paintInfo, r);
     393        return paintSnapshottedPluginOverlay(o, paintInfo, integralSnappedRect);
    393394#if ENABLE(INPUT_SPEECH)
    394395    case InputSpeechButtonPart:
    395         return paintInputFieldSpeechButton(o, paintInfo, r);
     396        return paintInputFieldSpeechButton(o, paintInfo, integralSnappedRect);
    396397#endif
    397398#if ENABLE(IMAGE_CONTROLS)
    398399    case ImageControlsButtonPart:
    399         return paintImageControlsButton(o, paintInfo, r);
     400        return paintImageControlsButton(o, paintInfo, integralSnappedRect);
    400401#endif
    401402    default:
     
    406407}
    407408
    408 bool RenderTheme::paintBorderOnly(const RenderObject& o, const PaintInfo& paintInfo, const IntRect& r)
     409bool RenderTheme::paintBorderOnly(const RenderObject& o, const PaintInfo& paintInfo, const LayoutRect& r)
    409410{
    410411    if (paintInfo.context->paintingDisabled())
     
    415416    return o.style().appearance() != NoControlPart;
    416417#else
     418    FloatRect devicePixelSnappedRect = pixelSnappedForPainting(r, o.document().deviceScaleFactor());
    417419    // Call the appropriate paint method based off the appearance value.
    418420    switch (o.style().appearance()) {
    419421    case TextFieldPart:
    420         return paintTextField(o, paintInfo, r);
     422        return paintTextField(o, paintInfo, devicePixelSnappedRect);
    421423    case ListboxPart:
    422424    case TextAreaPart:
    423         return paintTextArea(o, paintInfo, r);
     425        return paintTextArea(o, paintInfo, devicePixelSnappedRect);
    424426    case MenulistButtonPart:
    425427    case SearchFieldPart:
     
    464466}
    465467
    466 bool RenderTheme::paintDecorations(const RenderObject& renderer, const PaintInfo& paintInfo, const IntRect& rect)
     468bool RenderTheme::paintDecorations(const RenderObject& renderer, const PaintInfo& paintInfo, const LayoutRect& rect)
    467469{
    468470    if (paintInfo.context->paintingDisabled())
    469471        return false;
     472
     473    IntRect integralSnappedRect = pixelSnappedIntRect(rect);
     474    FloatRect devicePixelSnappedRect = pixelSnappedForPainting(rect, renderer.document().deviceScaleFactor());
    470475
    471476    // Call the appropriate paint method based off the appearance value.
    472477    switch (renderer.style().appearance()) {
    473478    case MenulistButtonPart:
    474         return paintMenuListButtonDecorations(renderer, paintInfo, rect);
     479        return paintMenuListButtonDecorations(renderer, paintInfo, integralSnappedRect);
    475480    case TextFieldPart:
    476         return paintTextFieldDecorations(renderer, paintInfo, rect);
     481        return paintTextFieldDecorations(renderer, paintInfo, devicePixelSnappedRect);
    477482    case TextAreaPart:
    478         return paintTextAreaDecorations(renderer, paintInfo, rect);
     483        return paintTextAreaDecorations(renderer, paintInfo, devicePixelSnappedRect);
    479484    case CheckboxPart:
    480         return paintCheckboxDecorations(renderer, paintInfo, rect);
     485        return paintCheckboxDecorations(renderer, paintInfo, integralSnappedRect);
    481486    case RadioPart:
    482         return paintRadioDecorations(renderer, paintInfo, rect);
     487        return paintRadioDecorations(renderer, paintInfo, integralSnappedRect);
    483488    case PushButtonPart:
    484         return paintPushButtonDecorations(renderer, paintInfo, rect);
     489        return paintPushButtonDecorations(renderer, paintInfo, integralSnappedRect);
    485490    case SquareButtonPart:
    486         return paintSquareButtonDecorations(renderer, paintInfo, rect);
     491        return paintSquareButtonDecorations(renderer, paintInfo, integralSnappedRect);
    487492    case ButtonPart:
    488         return paintButtonDecorations(renderer, paintInfo, rect);
     493        return paintButtonDecorations(renderer, paintInfo, integralSnappedRect);
    489494    case MenulistPart:
    490         return paintMenuListDecorations(renderer, paintInfo, rect);
     495        return paintMenuListDecorations(renderer, paintInfo, integralSnappedRect);
    491496    case SliderThumbHorizontalPart:
    492497    case SliderThumbVerticalPart:
    493         return paintSliderThumbDecorations(renderer, paintInfo, rect);
     498        return paintSliderThumbDecorations(renderer, paintInfo, integralSnappedRect);
    494499    case SearchFieldPart:
    495         return paintSearchFieldDecorations(renderer, paintInfo, rect);
     500        return paintSearchFieldDecorations(renderer, paintInfo, integralSnappedRect);
    496501#if ENABLE(METER_ELEMENT)
    497502    case MeterPart:
  • trunk/Source/WebCore/rendering/RenderTheme.h

    r167755 r167771  
    8080    // text of a button, is always rendered by the engine itself.  The boolean return value indicates
    8181    // whether the CSS border/background should also be painted.
    82     bool paint(const RenderObject&, ControlStates*, const PaintInfo&, const IntRect&);
    83     bool paintBorderOnly(const RenderObject&, const PaintInfo&, const IntRect&);
    84     bool paintDecorations(const RenderObject&, const PaintInfo&, const IntRect&);
     82    bool paint(const RenderObject&, ControlStates*, const PaintInfo&, const LayoutRect&);
     83    bool paintBorderOnly(const RenderObject&, const PaintInfo&, const LayoutRect&);
     84    bool paintDecorations(const RenderObject&, const PaintInfo&, const LayoutRect&);
    8585
    8686    // The remaining methods should be implemented by the platform-specific portion of the theme, e.g.,
     
    288288
    289289    virtual void adjustTextFieldStyle(StyleResolver*, RenderStyle*, Element*) const;
    290     virtual bool paintTextField(const RenderObject&, const PaintInfo&, const IntRect&) { return true; }
    291     virtual bool paintTextFieldDecorations(const RenderObject&, const PaintInfo&, const IntRect&) { return true; }
     290    virtual bool paintTextField(const RenderObject&, const PaintInfo&, const FloatRect&) { return true; }
     291    virtual bool paintTextFieldDecorations(const RenderObject&, const PaintInfo&, const FloatRect&) { return true; }
    292292
    293293    virtual void adjustTextAreaStyle(StyleResolver*, RenderStyle*, Element*) const;
    294     virtual bool paintTextArea(const RenderObject&, const PaintInfo&, const IntRect&) { return true; }
    295     virtual bool paintTextAreaDecorations(const RenderObject&, const PaintInfo&, const IntRect&) { return true; }
     294    virtual bool paintTextArea(const RenderObject&, const PaintInfo&, const FloatRect&) { return true; }
     295    virtual bool paintTextAreaDecorations(const RenderObject&, const PaintInfo&, const FloatRect&) { return true; }
    296296
    297297    virtual void adjustMenuListStyle(StyleResolver*, RenderStyle*, Element*) const;
  • trunk/Source/WebCore/rendering/RenderThemeIOS.h

    r167755 r167771  
    6767    virtual bool paintFileUploadIconDecorations(const RenderObject& inputRenderer, const RenderObject& buttonRenderer, const PaintInfo&, const IntRect&, Icon*, FileUploadDecorations) override;
    6868
    69     virtual bool paintTextFieldDecorations(const RenderObject&, const PaintInfo&, const IntRect&) override;
    70     virtual bool paintTextAreaDecorations(const RenderObject&, const PaintInfo&, const IntRect&) override;
     69    virtual bool paintTextFieldDecorations(const RenderObject&, const PaintInfo&, const FloatRect&) override;
     70    virtual bool paintTextAreaDecorations(const RenderObject&, const PaintInfo&, const FloatRect&) override;
    7171
    7272    virtual void adjustMenuListButtonStyle(StyleResolver*, RenderStyle*, Element*) const override;
  • trunk/Source/WebCore/rendering/RenderThemeIOS.mm

    r167755 r167771  
    474474}
    475475
    476 bool RenderThemeIOS::paintTextFieldDecorations(const RenderObject& box, const PaintInfo& paintInfo, const IntRect& rect)
     476bool RenderThemeIOS::paintTextFieldDecorations(const RenderObject& box, const PaintInfo& paintInfo, const FloatRect& rect)
    477477{
    478478    RenderStyle& style = box.style();
    479     IntPoint point(rect.x() + style.borderLeftWidth(), rect.y() + style.borderTopWidth());
     479    FloatPoint point(rect.x() + style.borderLeftWidth(), rect.y() + style.borderTopWidth());
    480480
    481481    GraphicsContextStateSaver stateSaver(*paintInfo.context);
    482482
    483     paintInfo.context->clipRoundedRect(FloatRoundedRect(style.getRoundedBorderFor(rect)));
     483    paintInfo.context->clipRoundedRect(FloatRoundedRect(style.getRoundedBorderFor(LayoutRect(rect))));
    484484
    485485    // This gradient gets drawn black when printing.
     
    491491}
    492492
    493 bool RenderThemeIOS::paintTextAreaDecorations(const RenderObject& box, const PaintInfo& paintInfo, const IntRect& rect)
     493bool RenderThemeIOS::paintTextAreaDecorations(const RenderObject& box, const PaintInfo& paintInfo, const FloatRect& rect)
    494494{
    495495    return paintTextFieldDecorations(box, paintInfo, rect);
  • trunk/Source/WebCore/rendering/RenderThemeMac.h

    r167757 r167771  
    124124    virtual bool supportsSelectionForegroundColors() const { return false; }
    125125
    126     virtual bool paintTextField(const RenderObject&, const PaintInfo&, const IntRect&);
     126    virtual bool paintTextField(const RenderObject&, const PaintInfo&, const FloatRect&);
    127127    virtual void adjustTextFieldStyle(StyleResolver*, RenderStyle*, Element*) const;
    128128
    129     virtual bool paintTextArea(const RenderObject&, const PaintInfo&, const IntRect&);
     129    virtual bool paintTextArea(const RenderObject&, const PaintInfo&, const FloatRect&);
    130130    virtual void adjustTextAreaStyle(StyleResolver*, RenderStyle*, Element*) const;
    131131
  • trunk/Source/WebCore/rendering/RenderThemeMac.mm

    r167755 r167771  
    812812}
    813813
    814 bool RenderThemeMac::paintTextField(const RenderObject& o, const PaintInfo& paintInfo, const IntRect& r)
     814bool RenderThemeMac::paintTextField(const RenderObject& o, const PaintInfo& paintInfo, const FloatRect& r)
    815815{
    816816    LocalCurrentGraphicsContext localContext(paintInfo.context);
     
    843843}
    844844
    845 bool RenderThemeMac::paintTextArea(const RenderObject& o, const PaintInfo& paintInfo, const IntRect& r)
     845bool RenderThemeMac::paintTextArea(const RenderObject& o, const PaintInfo& paintInfo, const FloatRect& r)
    846846{
    847847    LocalCurrentGraphicsContext localContext(paintInfo.context);
Note: See TracChangeset for help on using the changeset viewer.