aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/EphyBrowser.cpp35
-rw-r--r--embed/mozilla/EphyBrowser.h5
-rw-r--r--embed/mozilla/mozilla-embed.cpp21
3 files changed, 47 insertions, 14 deletions
diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp
index b87fe9bf3..0f49127cf 100644
--- a/embed/mozilla/EphyBrowser.cpp
+++ b/embed/mozilla/EphyBrowser.cpp
@@ -928,9 +928,9 @@ nsresult EphyBrowser::GetZoom (float *aZoom)
return mdv->GetTextZoom (aZoom);
}
-nsresult EphyBrowser::ScrollLines (int aNumLines)
+nsresult
+EphyBrowser::ScrollLines (PRInt32 aNumLines)
{
- nsresult rv;
nsCOMPtr<nsIDOMWindow> DOMWindow;
mWebBrowserFocus->GetFocusedWindow (getter_AddRefs(DOMWindow));
@@ -938,13 +938,14 @@ nsresult EphyBrowser::ScrollLines (int aNumLines)
{
DOMWindow = mDOMWindow;
}
+ NS_ENSURE_TRUE (DOMWindow, NS_ERROR_FAILURE);
- DOMWindow->ScrollByLines (aNumLines);
+ return DOMWindow->ScrollByLines (aNumLines);
}
-nsresult EphyBrowser::ScrollPages (int aNumPages)
+nsresult
+EphyBrowser::ScrollPages (PRInt32 aNumPages)
{
- nsresult rv;
nsCOMPtr<nsIDOMWindow> DOMWindow;
mWebBrowserFocus->GetFocusedWindow (getter_AddRefs(DOMWindow));
@@ -952,17 +953,35 @@ nsresult EphyBrowser::ScrollPages (int aNumPages)
{
DOMWindow = mDOMWindow;
}
+ NS_ENSURE_TRUE (DOMWindow, NS_ERROR_FAILURE);
- DOMWindow->ScrollByPages (aNumPages);
+ return DOMWindow->ScrollByPages (aNumPages);
}
+nsresult
+EphyBrowser::ScrollPixels (PRInt32 aDeltaX,
+ PRInt32 aDeltaY)
+{
+ nsCOMPtr<nsIDOMWindow> DOMWindow;
-nsresult EphyBrowser::GetDocument (nsIDOMDocument **aDOMDocument)
+ mWebBrowserFocus->GetFocusedWindow (getter_AddRefs(DOMWindow));
+ if (!DOMWindow)
+ {
+ DOMWindow = mDOMWindow;
+ }
+ NS_ENSURE_TRUE (DOMWindow, NS_ERROR_FAILURE);
+
+ return DOMWindow->ScrollBy (aDeltaX, aDeltaY);
+}
+
+nsresult
+EphyBrowser::GetDocument (nsIDOMDocument **aDOMDocument)
{
return mDOMWindow->GetDocument (aDOMDocument);
}
-nsresult EphyBrowser::GetTargetDocument (nsIDOMDocument **aDOMDocument)
+nsresult
+EphyBrowser::GetTargetDocument (nsIDOMDocument **aDOMDocument)
{
NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE);
diff --git a/embed/mozilla/EphyBrowser.h b/embed/mozilla/EphyBrowser.h
index 56058718b..ec605eb10 100644
--- a/embed/mozilla/EphyBrowser.h
+++ b/embed/mozilla/EphyBrowser.h
@@ -147,8 +147,9 @@ public:
nsresult SetZoom (float aTextZoom);
nsresult GetZoom (float *aTextZoom);
- nsresult ScrollLines (int aNumLines);
- nsresult ScrollPages (int aNumPages);
+ nsresult ScrollLines (PRInt32 aNumLines);
+ nsresult ScrollPages (PRInt32 aNumPages);
+ nsresult ScrollPixels (PRInt32 aDeltaX, PRInt32 aDeltaY);
nsresult Print ();
nsresult SetPrintPreviewMode (PRBool previewMode);
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index 17797f6e3..cbf728559 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -653,7 +653,8 @@ impl_get_zoom (EphyEmbed *embed)
}
static void
-impl_scroll (EphyEmbed *embed, int num_lines)
+impl_scroll_lines (EphyEmbed *embed,
+ int num_lines)
{
MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(embed)->priv;
@@ -661,13 +662,24 @@ impl_scroll (EphyEmbed *embed, int num_lines)
}
static void
-impl_page_scroll (EphyEmbed *embed, int num_pages)
+impl_scroll_pages (EphyEmbed *embed,
+ int num_pages)
{
MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(embed)->priv;
mpriv->browser->ScrollPages (num_pages);
}
+static void
+impl_scroll_pixels (EphyEmbed *embed,
+ int dx,
+ int dy)
+{
+ MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(embed)->priv;
+
+ mpriv->browser->ScrollPixels (dx, dy);
+}
+
static int
impl_shistory_n_items (EphyEmbed *embed)
{
@@ -1197,8 +1209,9 @@ ephy_embed_iface_init (EphyEmbedIface *iface)
iface->reload = impl_reload;
iface->set_zoom = impl_set_zoom;
iface->get_zoom = impl_get_zoom;
- iface->scroll = impl_scroll;
- iface->page_scroll = impl_page_scroll;
+ iface->scroll_lines = impl_scroll_lines;
+ iface->scroll_pages = impl_scroll_pages;
+ iface->scroll_pixels = impl_scroll_pixels;
iface->shistory_n_items = impl_shistory_n_items;
iface->shistory_get_nth = impl_shistory_get_nth;
iface->shistory_get_pos = impl_shistory_get_pos;