Fix reload and programmatic scrolling in RTL documents
[WebKit-https.git] / Source / WebCore / rendering / RenderListBox.h
index bc8b8f1..cce33be 100644 (file)
@@ -40,7 +40,7 @@ class HTMLSelectElement;
 
 class RenderListBox final : public RenderBlockFlow, public ScrollableArea {
 public:
-    RenderListBox(HTMLSelectElement&, PassRef<RenderStyle>);
+    RenderListBox(HTMLSelectElement&, Ref<RenderStyle>&&);
     virtual ~RenderListBox();
 
     HTMLSelectElement& selectElement() const;
@@ -59,6 +59,8 @@ public:
 
     int size() const;
 
+    virtual bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1, Element** stopElement = nullptr, RenderBox* startBox = nullptr, const IntPoint& wheelEventAbsolutePoint = IntPoint()) override;
+
     virtual bool scrolledToTop() const override;
     virtual bool scrolledToBottom() const override;
     virtual bool scrolledToLeft() const override;
@@ -78,8 +80,7 @@ private:
 
     virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& locationInContainer, const LayoutPoint& accumulatedOffset) override;
 
-    virtual bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1, Element** stopElement = nullptr, RenderBox* startBox = nullptr, const IntPoint& wheelEventAbsolutePoint = IntPoint()) override;
-    virtual bool logicalScroll(ScrollLogicalDirection, ScrollGranularity, float multiplier = 1, Element** stopElement = 0) override;
+    virtual bool logicalScroll(ScrollLogicalDirection, ScrollGranularity, float multiplier = 1, Element** stopElement = nullptr) override;
 
     virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const override;
     virtual void computePreferredLogicalWidths() override;
@@ -88,7 +89,7 @@ private:
 
     virtual void layout() override;
 
-    virtual void addFocusRingRects(Vector<IntRect>&, const LayoutPoint& additionalOffset, const RenderLayerModelObject* paintContainer = 0) override;
+    virtual void addFocusRingRects(Vector<IntRect>&, const LayoutPoint& additionalOffset, const RenderLayerModelObject* paintContainer = nullptr) override;
 
     virtual bool canBeProgramaticallyScrolled() const override { return true; }
     virtual void autoscroll(const IntPoint&) override;
@@ -110,7 +111,7 @@ private:
     // ScrollableArea interface.
     virtual int scrollSize(ScrollbarOrientation) const override;
     virtual int scrollPosition(Scrollbar*) const override;
-    virtual void setScrollOffset(const IntPoint&) override;
+    virtual void setScrollOffset(const ScrollOffset&) override;
     virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) override;
     virtual bool isActive() const override;
     virtual bool isScrollCornerVisible() const override { return false; } // We don't support resize on list boxes yet. If we did these would have to change.
@@ -122,7 +123,7 @@ private:
     virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const override;
     virtual Scrollbar* verticalScrollbar() const override { return m_vBar.get(); }
     virtual IntSize contentsSize() const override;
-    virtual IntSize visibleSize() const override { return IntSize(height(), width()); }
+    virtual IntSize visibleSize() const override { return IntSize(width(), height()); }
     virtual IntPoint lastKnownMousePosition() const override;
     virtual bool isHandlingWheelEvent() const override;
     virtual bool shouldSuspendScrollAnimations() const override;
@@ -130,7 +131,9 @@ private:
     virtual bool forceUpdateScrollbarsOnMainThreadForPerformanceTesting() const override;
 
     virtual ScrollableArea* enclosingScrollableArea() const override;
-    virtual IntRect scrollableAreaBoundingBox() const override;
+    virtual bool isScrollableOrRubberbandable() override;
+    virtual bool hasScrollableOrRubberbandableAncestor() override;
+    virtual IntRect scrollableAreaBoundingBox(bool* = nullptr) const override;
 
     // NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
     void scrollTo(int newOffset);
@@ -158,8 +161,8 @@ private:
     RefPtr<Scrollbar> m_vBar;
 };
 
-RENDER_OBJECT_TYPE_CASTS(RenderListBox, isListBox())
-
 } // namepace WebCore
 
+SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderListBox, isListBox())
+
 #endif // RenderListBox_h