diff options
Diffstat (limited to 'embed/mozilla')
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 35 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.h | 5 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 21 |
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; |