Changeset 71186 in webkit


Ignore:
Timestamp:
Nov 2, 2010 4:36:20 PM (14 years ago)
Author:
jam@chromium.org
Message:

2010-10-29 John Abd-El-Malek <jam@chromium.org>

Reviewed by Darin Fisher.

[chromium]: Allow plugins to use optimized scrolling
https://bugs.webkit.org/show_bug.cgi?id=48660

  • public/WebPluginContainer.h:
  • src/WebPluginContainerImpl.cpp: (WebKit::WebPluginContainerImpl::scrollRect):
  • src/WebPluginContainerImpl.h:
Location:
trunk/WebKit/chromium
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/chromium/ChangeLog

    r71179 r71186  
     12010-10-29  John Abd-El-Malek  <jam@chromium.org>
     2
     3        Reviewed by Darin Fisher.
     4
     5        [chromium]: Allow plugins to use optimized scrolling
     6        https://bugs.webkit.org/show_bug.cgi?id=48660
     7
     8        * public/WebPluginContainer.h:
     9        * src/WebPluginContainerImpl.cpp:
     10        (WebKit::WebPluginContainerImpl::scrollRect):
     11        * src/WebPluginContainerImpl.h:
     12
    1132010-11-02  Marc-Antoine Ruel  <maruel@chromium.org>
    214
  • trunk/WebKit/chromium/public/WebPluginContainer.h

    r68869 r71186  
    5050    virtual void invalidate() = 0;
    5151    virtual void invalidateRect(const WebRect&) = 0;
     52    virtual void scrollRect(int dx, int dy, const WebRect&) = 0;
    5253
    5354    // Causes the container to report its current geometry via
  • trunk/WebKit/chromium/src/WebPluginContainerImpl.cpp

    r69840 r71186  
    276276}
    277277
     278void WebPluginContainerImpl::scrollRect(int dx, int dy, const WebRect& rect)
     279{
     280    Widget* parentWidget = parent();
     281    if (parentWidget->isFrameView()) {
     282        FrameView* parentFrameView = static_cast<FrameView*>(parentWidget);
     283        if (!parentFrameView->isOverlapped()) {
     284            IntRect damageRect = convertToContainingWindow(static_cast<IntRect>(rect));
     285            IntSize scrollDelta(dx, dy);
     286            // scroll() only uses the second rectangle, clipRect, and ignores the first
     287            // rectangle.
     288            parent()->hostWindow()->scroll(scrollDelta, damageRect, damageRect);
     289            return;
     290        }
     291    }
     292
     293    // Use slow scrolling instead.
     294    invalidateRect(rect);
     295}
     296
    278297void WebPluginContainerImpl::reportGeometry()
    279298{
  • trunk/WebKit/chromium/src/WebPluginContainerImpl.h

    r70153 r71186  
    8080    virtual void invalidate();
    8181    virtual void invalidateRect(const WebRect&);
     82    virtual void scrollRect(int dx, int dy, const WebRect&);
    8283    virtual void reportGeometry();
    8384    virtual void clearScriptObjects();
Note: See TracChangeset for help on using the changeset viewer.