Title: [97411] trunk/Source/WebKit2
Revision
97411
Author
[email protected]
Date
2011-10-13 15:25:05 -0700 (Thu, 13 Oct 2011)

Log Message

        [Mac] Wheel event handler counter is incorrect with PDF views
        https://bugs.webkit.org/show_bug.cgi?id=70062

        Reviewed by Dan Bernstein.

        * WebProcess/Plugins/PDF/BuiltInPDFView.h:
        * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
        (WebKit::BuiltInPDFView::didAddVerticalScrollbar): Added forgotten override for vertical case.
        (WebKit::BuiltInPDFView::willRemoveVerticalScrollbar): Ditto.
        (WebKit::BuiltInPDFView::createScrollbar): Notify self, do not make a shortcut to ScrollAnimator.
        (WebKit::BuiltInPDFView::destroyScrollbar): Ditto.
        (WebKit::BuiltInPDFView::destroy): Actually destroy the scrollbars.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (97410 => 97411)


--- trunk/Source/WebKit2/ChangeLog	2011-10-13 22:23:47 UTC (rev 97410)
+++ trunk/Source/WebKit2/ChangeLog	2011-10-13 22:25:05 UTC (rev 97411)
@@ -1,3 +1,18 @@
+2011-10-13  Alexey Proskuryakov  <[email protected]>
+
+        [Mac] Wheel event handler counter is incorrect with PDF views
+        https://bugs.webkit.org/show_bug.cgi?id=70062
+
+        Reviewed by Dan Bernstein.
+
+        * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+        * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
+        (WebKit::BuiltInPDFView::didAddVerticalScrollbar): Added forgotten override for vertical case.
+        (WebKit::BuiltInPDFView::willRemoveVerticalScrollbar): Ditto.
+        (WebKit::BuiltInPDFView::createScrollbar): Notify self, do not make a shortcut to ScrollAnimator.
+        (WebKit::BuiltInPDFView::destroyScrollbar): Ditto.
+        (WebKit::BuiltInPDFView::destroy): Actually destroy the scrollbars.
+
 2011-10-12  Chris Marrin  <[email protected]>
 
         Sync requestAnimationFrame callback to CVDisplayLink on Mac

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp (97410 => 97411)


--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp	2011-10-13 22:23:47 UTC (rev 97410)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp	2011-10-13 22:25:05 UTC (rev 97411)
@@ -142,14 +142,28 @@
         pluginView->frame()->document()->didRemoveWheelEventHandler();
 }
 
+void BuiltInPDFView::didAddVerticalScrollbar(Scrollbar* scrollbar)
+{
+    pluginView()->frame()->document()->didAddWheelEventHandler();
+    ScrollableArea::didAddVerticalScrollbar(scrollbar);
+}
+
+void BuiltInPDFView::willRemoveVerticalScrollbar(Scrollbar* scrollbar)
+{
+    ScrollableArea::willRemoveVerticalScrollbar(scrollbar);
+    // FIXME: Maybe need a separate ScrollableArea::didRemoveHorizontalScrollbar callback?
+    if (PluginView* pluginView = this->pluginView())
+        pluginView->frame()->document()->didRemoveWheelEventHandler();
+}
+
 PassRefPtr<Scrollbar> BuiltInPDFView::createScrollbar(ScrollbarOrientation orientation)
 {
     // FIXME: Support custom scrollbar styles.
     RefPtr<Scrollbar> widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar);
     if (orientation == HorizontalScrollbar)
-        scrollAnimator()->didAddHorizontalScrollbar(widget.get());
+        didAddHorizontalScrollbar(widget.get());
     else 
-        scrollAnimator()->didAddVerticalScrollbar(widget.get());
+        didAddVerticalScrollbar(widget.get());
     pluginView()->frame()->view()->addChild(widget.get());
     return widget.release();
 }
@@ -161,9 +175,9 @@
         return;
 
     if (orientation == HorizontalScrollbar)
-        scrollAnimator()->willRemoveHorizontalScrollbar(scrollbar.get());
+        willRemoveHorizontalScrollbar(scrollbar.get());
     else
-        scrollAnimator()->willRemoveVerticalScrollbar(scrollbar.get());
+        willRemoveVerticalScrollbar(scrollbar.get());
 
     scrollbar->removeFromParent();
     scrollbar->disconnectFromScrollableArea();
@@ -214,10 +228,8 @@
     if (m_page)
         m_page->removeScrollableArea(this);
 
-    if (m_horizontalScrollbar)
-        willRemoveHorizontalScrollbar(m_horizontalScrollbar.get());
-    if (m_verticalScrollbar)
-        willRemoveVerticalScrollbar(m_verticalScrollbar.get());
+    destroyScrollbar(HorizontalScrollbar);
+    destroyScrollbar(VerticalScrollbar);
 }
 
 void BuiltInPDFView::paint(GraphicsContext* graphicsContext, const IntRect& dirtyRectInWindowCoordinates)

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h (97410 => 97411)


--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2011-10-13 22:23:47 UTC (rev 97410)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2011-10-13 22:25:05 UTC (rev 97411)
@@ -56,6 +56,8 @@
     void updateScrollbars();
     void didAddHorizontalScrollbar(WebCore::Scrollbar*);
     void willRemoveHorizontalScrollbar(WebCore::Scrollbar*);
+    void didAddVerticalScrollbar(WebCore::Scrollbar*);
+    void willRemoveVerticalScrollbar(WebCore::Scrollbar*);
     PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation);
     void destroyScrollbar(WebCore::ScrollbarOrientation);
     void pdfDocumentDidLoad();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to