Bug#486744: Looks like an epiphany problem, in the end...
Mike Hommey
mh at glandium.org
Sun Sep 28 14:23:44 UTC 2008
tag 486744 + patch
thanks
On Sun, Sep 28, 2008 at 02:52:19PM +0200, Mike Hommey wrote:
> reassign 486744 epiphany-gecko
> thanks
>
> See https://bugzilla.mozilla.org/show_bug.cgi?id=444894#c19
I tried two approaches, one looking much better than the other.
The first patch (the longest one) solves the crash, while apparently
keeping epiphany's zoom behaviour of keeping zoom level on a website,
but changing the zoom level back to 1.0 when going to a new website.
The second patch (the one-liner) solves the crash too, but has odd
behaviour wrt zoom level when going back/forward in history: it keeps
the current zoom level when going on a new website, but will reset to
1.0 when hitting the back and forward buttons.
The first patch sounds like the right fix, though I don't know what
weird side effects could show up.
Mike
-------------- next part --------------
--- epiphany-browser-2.22.3.orig/embed/mozilla/EphyBrowser.h
+++ epiphany-browser-2.22.3/embed/mozilla/EphyBrowser.h
@@ -208,6 +208,7 @@
nsCOMPtr<nsIWebBrowser> mWebBrowser;
private:
GtkWidget *mEmbed;
+ float mZoom;
nsCOMPtr<nsIWebBrowserFocus> mWebBrowserFocus;
nsCOMPtr<nsIDOMDocument> mTargetDocument;
--- epiphany-browser-2.22.3.orig/embed/mozilla/EphyBrowser.cpp
+++ epiphany-browser-2.22.3/embed/mozilla/EphyBrowser.cpp
@@ -830,6 +830,7 @@
#endif
, mContextMenuListener(nsnull)
, mInitialized(PR_FALSE)
+, mZoom(0.0)
{
LOG ("EphyBrowser ctor (%p)", this);
}
@@ -1192,7 +1193,9 @@
nsCOMPtr<nsIMarkupDocumentViewer> mdv = do_QueryInterface(contentViewer);
NS_ENSURE_TRUE (mdv, NS_ERROR_FAILURE);
- return mdv->SetTextZoom (aZoom);
+ nsresult rv = mdv->SetTextZoom (aZoom);
+ mZoom = aZoom;
+ return rv;
}
nsresult EphyBrowser::GetContentViewer (nsIContentViewer **aViewer)
@@ -1207,6 +1210,10 @@
nsresult EphyBrowser::GetZoom (float *aZoom)
{
+ if (mZoom != 0) {
+ *aZoom = mZoom;
+ return NS_OK;
+ }
NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE);
nsCOMPtr<nsIContentViewer> contentViewer;
@@ -1216,7 +1223,9 @@
nsCOMPtr<nsIMarkupDocumentViewer> mdv = do_QueryInterface(contentViewer);
NS_ENSURE_TRUE (mdv, NS_ERROR_FAILURE);
- return mdv->GetTextZoom (aZoom);
+ nsresult rv = mdv->GetTextZoom (aZoom);
+ mZoom = *aZoom;
+ return rv;
}
nsresult
-------------- next part --------------
--- epiphany-browser-2.22.3.orig/embed/mozilla/mozilla-embed.cpp
+++ epiphany-browser-2.22.3/embed/mozilla/mozilla-embed.cpp
@@ -1001,7 +1001,6 @@
char *address;
address = gtk_moz_embed_get_location (moz_embed);
ephy_base_embed_popups_manager_reset (EPHY_BASE_EMBED (membed));
- ephy_base_embed_restore_zoom_level (EPHY_BASE_EMBED (membed), address);
g_free (address);
}
}
More information about the pkg-gnome-maintainers
mailing list