Changeset 194513 in webkit


Ignore:
Timestamp:
Jan 3, 2016 8:56:02 AM (8 years ago)
Author:
Simon Fraser
Message:

Some cleanup in ScrollAnimator
https://bugs.webkit.org/show_bug.cgi?id=152649

Try to fix GTK scroll position errors in RTL.

ScrollAnimatorNone::scrollToOffsetWithoutAnimation() was failing to map from
offset to position.

Also add logging in ScrollableArea::scrollToOffsetWithoutAnimation().

  • platform/ScrollAnimatorNone.cpp:

(WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r194508 r194513  
     12016-01-03  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Some cleanup in ScrollAnimator
     4        https://bugs.webkit.org/show_bug.cgi?id=152649
     5
     6        Try to fix GTK scroll position errors in RTL.
     7       
     8        ScrollAnimatorNone::scrollToOffsetWithoutAnimation() was failing to map from
     9        offset to position.
     10       
     11        Also add logging in ScrollableArea::scrollToOffsetWithoutAnimation().
     12
     13        * platform/ScrollAnimatorNone.cpp:
     14        (WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):
     15        * platform/ScrollableArea.cpp:
     16        (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
     17
    1182016-01-02  Simon Fraser  <simon.fraser@apple.com>
    219
  • trunk/Source/WebCore/platform/ScrollAnimatorNone.cpp

    r194507 r194513  
    449449{
    450450    stopAnimationTimerIfNeeded();
    451 
    452     FloatSize delta = FloatSize(offset.x() - *m_horizontalData.m_currentPosition, offset.y() - *m_verticalData.m_currentPosition);
     451   
     452    FloatPoint position = ScrollableArea::scrollPositionFromOffset(offset, toFloatSize(m_scrollableArea.scrollOrigin()));
     453    FloatSize delta = position - FloatPoint(*m_horizontalData.m_currentPosition, *m_verticalData.m_currentPosition);
    453454
    454455    m_horizontalData.reset();
    455     *m_horizontalData.m_currentPosition = offset.x();
    456     m_horizontalData.m_desiredPosition = offset.x();
     456    *m_horizontalData.m_currentPosition = position.x();
     457    m_horizontalData.m_desiredPosition = position.x();
    457458
    458459    m_verticalData.reset();
    459     *m_verticalData.m_currentPosition = offset.y();
    460     m_verticalData.m_desiredPosition = offset.y();
     460    *m_verticalData.m_currentPosition = position.y();
     461    m_verticalData.m_desiredPosition = position.y();
    461462
    462463    notifyPositionChanged(delta);
  • trunk/Source/WebCore/platform/ScrollableArea.cpp

    r194496 r194513  
    3737#include "FloatPoint.h"
    3838#include "LayoutRect.h"
     39#include "Logging.h"
    3940#include "PlatformWheelEvent.h"
    4041#include "ScrollAnimator.h"
    4142#include "ScrollbarTheme.h"
     43#include "TextStream.h"
    4244
    4345namespace WebCore {
     
    135137void ScrollableArea::scrollToOffsetWithoutAnimation(const FloatPoint& offset)
    136138{
     139    LOG_WITH_STREAM(Scrolling, stream << "ScrollableArea " << this << " scrollToOffsetWithoutAnimation " << offset);
    137140    scrollAnimator().scrollToOffsetWithoutAnimation(offset);
    138141}
Note: See TracChangeset for help on using the changeset viewer.