2008-09-27  David Hyatt  <hyatt@apple.com>

        Make the scrollbarUnderMouse method cross-platform.

        Reviewed by Sam Weinig

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollbarUnderMouse):
        * platform/gtk/ScrollViewGtk.cpp:
        * platform/mac/ScrollViewMac.mm:
        * platform/qt/ScrollViewQt.cpp:
        * platform/win/ScrollViewWin.cpp:
        * platform/wx/ScrollViewWx.cpp:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 24d2897..7027a5f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2008-09-27  David Hyatt  <hyatt@apple.com>
+
+        Make the scrollbarUnderMouse method cross-platform.
+
+        Reviewed by Sam Weinig
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::scrollbarUnderMouse):
+        * platform/gtk/ScrollViewGtk.cpp:
+        * platform/mac/ScrollViewMac.mm:
+        * platform/qt/ScrollViewQt.cpp:
+        * platform/win/ScrollViewWin.cpp:
+        * platform/wx/ScrollViewWx.cpp:
+
 2008-09-27  Holger Hans Peter Freyther  <zecke@selfish.org>
 
         Gtk+ build fix.
diff --git a/WebCore/platform/ScrollView.cpp b/WebCore/platform/ScrollView.cpp
index df3e4ad..ca32a7b 100644
--- a/WebCore/platform/ScrollView.cpp
+++ b/WebCore/platform/ScrollView.cpp
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "ScrollView.h"
 
+#include "PlatformMouseEvent.h"
 #include "Scrollbar.h"
 
 using std::max;
@@ -254,6 +255,19 @@
     }
 }
 
+Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
+{
+    if (platformWidget())
+        return 0;
+
+    IntPoint viewPoint = convertFromContainingWindow(mouseEvent.pos());
+    if (m_horizontalScrollbar && m_horizontalScrollbar->frameRect().contains(viewPoint))
+        return m_horizontalScrollbar.get();
+    if (m_verticalScrollbar && m_verticalScrollbar->frameRect().contains(viewPoint))
+        return m_verticalScrollbar.get();
+    return 0;
+}
+
 #if !PLATFORM(MAC)
 void ScrollView::platformSetCanBlitOnScroll()
 {
diff --git a/WebCore/platform/gtk/ScrollViewGtk.cpp b/WebCore/platform/gtk/ScrollViewGtk.cpp
index 6acbe40..82a1bb4 100644
--- a/WebCore/platform/gtk/ScrollViewGtk.cpp
+++ b/WebCore/platform/gtk/ScrollViewGtk.cpp
@@ -522,16 +522,6 @@
     m_data->inUpdateScrollbars = false;
 }
 
-Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
-{
-    IntPoint viewPoint = convertFromContainingWindow(mouseEvent.pos());
-    if (m_horizontalScrollbar && m_horizontalScrollbar->frameRect().contains(viewPoint))
-        return m_horizontalScrollbar.get();
-    if (m_verticalScrollbar && m_verticalScrollbar->frameRect().contains(viewPoint))
-        return m_verticalScrollbar.get();
-    return 0;
-}
-
 void ScrollView::paint(GraphicsContext* context, const IntRect& rect)
 {
     // FIXME: This code is here so we don't have to fork FrameView.h/.cpp.
diff --git a/WebCore/platform/mac/ScrollViewMac.mm b/WebCore/platform/mac/ScrollViewMac.mm
index 4bfa62b..a031a4e 100644
--- a/WebCore/platform/mac/ScrollViewMac.mm
+++ b/WebCore/platform/mac/ScrollViewMac.mm
@@ -215,11 +215,6 @@
     return nil;
 }
 
-Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent&)
-{
-    return 0;
-}
-
 bool ScrollView::isOffscreen() const
 {
     return ![platformWidget() window] || ![[platformWidget() window] isVisible];
diff --git a/WebCore/platform/qt/ScrollViewQt.cpp b/WebCore/platform/qt/ScrollViewQt.cpp
index c36691e..880aa4d 100644
--- a/WebCore/platform/qt/ScrollViewQt.cpp
+++ b/WebCore/platform/qt/ScrollViewQt.cpp
@@ -392,16 +392,6 @@
     m_data->m_inUpdateScrollbars = false;
 }
 
-Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
-{
-    IntPoint viewPoint = convertFromContainingWindow(mouseEvent.pos());
-    if (m_horizontalScrollbar && m_horizontalScrollbar->frameRect().contains(viewPoint))
-        return m_horizontalScrollbar.get();
-    if (m_verticalScrollbar && m_verticalScrollbar->frameRect().contains(viewPoint))
-        return m_verticalScrollbar.get();
-    return 0;
-}
-
 void ScrollView::platformAddChild(Widget* child)
 {
     root()->incrementNativeWidgetCount();
diff --git a/WebCore/platform/win/ScrollViewWin.cpp b/WebCore/platform/win/ScrollViewWin.cpp
index 46bdc8e..395887b 100644
--- a/WebCore/platform/win/ScrollViewWin.cpp
+++ b/WebCore/platform/win/ScrollViewWin.cpp
@@ -390,16 +390,6 @@
     m_data->m_inUpdateScrollbars = false;
 }
 
-Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
-{
-    IntPoint viewPoint = convertFromContainingWindow(mouseEvent.pos());
-    if (m_horizontalScrollbar && m_horizontalScrollbar->frameRect().contains(viewPoint))
-        return m_horizontalScrollbar.get();
-    if (m_verticalScrollbar && m_verticalScrollbar->frameRect().contains(viewPoint))
-        return m_verticalScrollbar.get();
-    return 0;
-}
-
 void ScrollView::printPanScrollIcon(const IntPoint& iconPosition)
 {
     m_data->m_drawPanScrollIcon = true;    
diff --git a/WebCore/platform/wx/ScrollViewWx.cpp b/WebCore/platform/wx/ScrollViewWx.cpp
index 91fe427..3e7e4f3 100644
--- a/WebCore/platform/wx/ScrollViewWx.cpp
+++ b/WebCore/platform/wx/ScrollViewWx.cpp
@@ -346,11 +346,4 @@
     }
 }
 
-Scrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
-{
-    // AFAICT this is only used for platforms that provide
-    // feedback when mouse is hovered over.
-    return 0;
-}
-
 }