aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXan Lopez <xan@src.gnome.org>2008-07-01 05:27:22 +0800
committerXan Lopez <xan@src.gnome.org>2008-07-01 05:27:22 +0800
commit9dc44b16830dfa9f1b82f6af82ff4578beb6bc36 (patch)
tree3ebe82b8db9b5f158a4f6d81cc69e9c498888db6
parent1e829eefa511c3463deddb7c3d99d4c27960e077 (diff)
downloadgsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar.gz
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar.bz2
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar.lz
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar.xz
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.tar.zst
gsoc2013-epiphany-9dc44b16830dfa9f1b82f6af82ff4578beb6bc36.zip
embed: restore restore_zoom_level.
svn path=/trunk/; revision=8328
-rw-r--r--embed/ephy-base-embed.c35
-rw-r--r--embed/webkit/webkit-embed.c39
2 files changed, 39 insertions, 35 deletions
diff --git a/embed/ephy-base-embed.c b/embed/ephy-base-embed.c
index 689cf80de..e5b3a1216 100644
--- a/embed/ephy-base-embed.c
+++ b/embed/ephy-base-embed.c
@@ -59,7 +59,6 @@ struct _EphyBaseEmbedPrivate {
/* Flags */
guint is_blank : 1;
guint is_loading : 1;
- guint is_setting_zoom : 1;
guint visibility : 1;
gint8 load_percent;
@@ -1492,40 +1491,6 @@ ephy_base_embed_set_security_level (EphyBaseEmbed *embed,
}
}
-#if 0
-void
-ephy_base_embed_restore_zoom_level (EphyBaseEmbed *membed,
- const char *address)
-{
- EphyBaseEmbedPrivate *priv = membed->priv;
-
- /* restore zoom level */
- if (ephy_embed_utils_address_has_web_scheme (address)) {
- EphyHistory *history;
- EphyNode *host;
- GValue value = { 0, };
- float zoom = 1.0, current_zoom;
-
- history = EPHY_HISTORY
- (ephy_embed_shell_get_global_history (embed_shell));
- host = ephy_history_get_host (history, address);
-
- if (host != NULL && ephy_node_get_property
- (host, EPHY_NODE_HOST_PROP_ZOOM, &value)) {
- zoom = g_value_get_float (&value);
- g_value_unset (&value);
- }
-
- current_zoom = ephy_embed_get_zoom (EPHY_EMBED (membed));
- if (zoom != current_zoom) {
- priv->is_setting_zoom = TRUE;
- ephy_embed_set_zoom (EPHY_EMBED (membed), zoom);
- priv->is_setting_zoom = FALSE;
- }
- }
-}
-#endif
-
void
ephy_base_embed_set_visibility (EphyBaseEmbed *embed,
gboolean visibility)
diff --git a/embed/webkit/webkit-embed.c b/embed/webkit/webkit-embed.c
index ec9ceefb2..a4863ee21 100644
--- a/embed/webkit/webkit-embed.c
+++ b/embed/webkit/webkit-embed.c
@@ -59,6 +59,7 @@ struct WebKitEmbedPrivate
WebKitEmbedLoadState load_state;
char *loading_uri;
EphyHistory *history;
+ guint is_setting_zoom : 1;
};
static void
@@ -156,6 +157,43 @@ update_load_state (WebKitEmbed *embed, WebKitWebView *web_view)
}
static void
+restore_zoom_level (WebKitEmbed *embed,
+ const char *address)
+{
+ WebKitEmbedPrivate *priv = embed->priv;
+
+ /* restore zoom level */
+ if (ephy_embed_utils_address_has_web_scheme (address)) {
+ EphyHistory *history;
+ EphyNode *host;
+ WebKitWebView *web_view;
+ GValue value = { 0, };
+ float zoom = 1.0, current_zoom;
+
+ history = EPHY_HISTORY
+ (ephy_embed_shell_get_global_history (embed_shell));
+ host = ephy_history_get_host (history, address);
+
+ if (host != NULL && ephy_node_get_property
+ (host, EPHY_NODE_HOST_PROP_ZOOM, &value)) {
+ zoom = g_value_get_float (&value);
+ g_value_unset (&value);
+ }
+
+ web_view = priv->web_view;
+
+ g_object_get (G_OBJECT (web_view), "zoom-level", &current_zoom,
+ NULL);
+
+ if (zoom != current_zoom) {
+ priv->is_setting_zoom = TRUE;
+ g_object_set (G_OBJECT (web_view), "zoom-level", zoom, NULL);
+ priv->is_setting_zoom = FALSE;
+ }
+ }
+}
+
+static void
webkit_embed_load_committed_cb (WebKitWebView *web_view,
WebKitWebFrame *web_frame,
EphyEmbed *embed)
@@ -164,6 +202,7 @@ webkit_embed_load_committed_cb (WebKitWebView *web_view,
ephy_base_embed_location_changed (EPHY_BASE_EMBED (embed),
uri);
+ restore_zoom_level (WEBKIT_EMBED (embed), uri);
ephy_history_add_page (WEBKIT_EMBED (embed)->priv->history,
uri,
FALSE,