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;
-}
-
}