aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
authorXan Lopez <xan@src.gnome.org>2008-07-01 05:27:12 +0800
committerXan Lopez <xan@src.gnome.org>2008-07-01 05:27:12 +0800
commit76dd77e2f40b6e2de50716117c3abd2c49e528a4 (patch)
tree7d5d70b1896bd02fe42715dccfbc5ad7fd0d25b9 /embed
parent751d86d728c53a39887036e8e85ab4b8600ec60d (diff)
downloadgsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar.gz
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar.bz2
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar.lz
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar.xz
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.tar.zst
gsoc2013-epiphany-76dd77e2f40b6e2de50716117c3abd2c49e528a4.zip
embed: remove ge-zoom-changed and zoom property.
Use zoom-level property in WebKit directly. svn path=/trunk/; revision=8326
Diffstat (limited to 'embed')
-rw-r--r--embed/ephy-base-embed.c58
-rw-r--r--embed/ephy-embed.c21
-rw-r--r--embed/ephy-embed.h2
-rw-r--r--embed/webkit/webkit-embed.c45
4 files changed, 47 insertions, 79 deletions
diff --git a/embed/ephy-base-embed.c b/embed/ephy-base-embed.c
index 68bae0683..689cf80de 100644
--- a/embed/ephy-base-embed.c
+++ b/embed/ephy-base-embed.c
@@ -55,7 +55,6 @@ struct _EphyBaseEmbedPrivate {
/* guint security_level : 3; ? */
EphyEmbedDocumentType document_type;
EphyEmbedNavigationFlags nav_flags;
- float zoom;
/* Flags */
guint is_blank : 1;
@@ -108,7 +107,6 @@ enum {
PROP_TITLE,
PROP_VISIBLE,
PROP_TYPED_ADDRESS,
- PROP_ZOOM
};
#define EPHY_BASE_EMBED_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_BASE_EMBED, EphyBaseEmbedPrivate))
@@ -480,7 +478,6 @@ ephy_base_embed_set_property (GObject *object,
case PROP_SECURITY:
case PROP_STATUS_MESSAGE:
case PROP_VISIBLE:
- case PROP_ZOOM:
/* read only */
break;
default:
@@ -584,9 +581,6 @@ ephy_base_embed_get_property (GObject *object,
case PROP_VISIBLE:
g_value_set_boolean (value, priv->visibility);
break;
- case PROP_ZOOM:
- g_value_set_float (value, priv->zoom);
- break;
default:
break;
}
@@ -623,15 +617,7 @@ ephy_base_embed_class_init (EphyBaseEmbedClass *klass)
EPHY_TYPE_EMBED_DOCUMENT_TYPE,
EPHY_EMBED_DOCUMENT_HTML,
G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
- g_object_class_install_property (gobject_class,
- PROP_ZOOM,
- g_param_spec_float ("zoom",
- "Zoom",
- "The embed's zoom",
- ZOOM_MINIMAL,
- ZOOM_MAXIMAL,
- 1.0,
- G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+
g_object_class_install_property (gobject_class,
PROP_LOAD_PROGRESS,
g_param_spec_int ("load-progress",
@@ -766,41 +752,6 @@ ge_document_type_cb (EphyEmbed *embed,
}
static void
-ge_zoom_change_cb (EphyEmbed *embed,
- float zoom,
- EphyBaseEmbed *bembed)
-{
- char *address;
-
- if (bembed->priv->zoom != zoom) {
- if (bembed->priv->is_setting_zoom) {
- return;
- }
-
- address = ephy_embed_get_location (embed, TRUE);
- if (ephy_embed_utils_address_has_web_scheme (address)) {
- EphyHistory *history;
- EphyNode *host;
- history = EPHY_HISTORY
- (ephy_embed_shell_get_global_history (embed_shell));
- host = ephy_history_get_host (history, address);
-
- if (host != NULL) {
- ephy_node_set_property_float (host,
- EPHY_NODE_HOST_PROP_ZOOM,
- zoom);
- }
- }
-
- g_free (address);
-
- bembed->priv->zoom = zoom;
-
- g_object_notify (G_OBJECT (embed), "zoom");
- }
-}
-
-static void
ge_favicon_cb (EphyEmbed *membed,
const char *address,
EphyBaseEmbed *bembed)
@@ -894,10 +845,6 @@ ephy_base_embed_init (EphyBaseEmbed *self)
G_CALLBACK (ge_document_type_cb),
self, (GConnectFlags)0);
- g_signal_connect_object (self, "ge_zoom_change",
- G_CALLBACK (ge_zoom_change_cb),
- self, (GConnectFlags)0);
-
g_signal_connect_object (self, "ge_favicon",
G_CALLBACK (ge_favicon_cb),
self, (GConnectFlags)0);
@@ -918,7 +865,6 @@ ephy_base_embed_init (EphyBaseEmbed *self)
priv->document_type = EPHY_EMBED_DOCUMENT_HTML;
priv->security_level = EPHY_EMBED_STATE_IS_UNKNOWN;
- priv->zoom = 1.0;
priv->address_expire = EPHY_EMBED_ADDRESS_EXPIRE_NOW;
priv->is_blank = TRUE;
priv->title = g_strdup (EMPTY_PAGE);
@@ -1546,6 +1492,7 @@ ephy_base_embed_set_security_level (EphyBaseEmbed *embed,
}
}
+#if 0
void
ephy_base_embed_restore_zoom_level (EphyBaseEmbed *membed,
const char *address)
@@ -1577,6 +1524,7 @@ ephy_base_embed_restore_zoom_level (EphyBaseEmbed *membed,
}
}
}
+#endif
void
ephy_base_embed_set_visibility (EphyBaseEmbed *embed,
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index 5fff25366..2260b112d 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -208,27 +208,6 @@ ephy_embed_base_init (gpointer g_class)
1,
G_TYPE_OBJECT);
/**
- * EphyEmbed::ge-zoom-change:
- * @embed:
- * @zoom: @embed's new zoom level
- *
- * The ::ge_zoom_change signal is emitted when @embed's zoom changes. This can
- * be manual (the user modified the zoom level) or automatic (@embed's zoom is
- * automatically changed when browsing to a new site for which the user
- * previously specified a zoom level).
- *
- * A @zoom value of 1.0 indicates 100% (normal zoom).
- **/
- g_signal_new ("ge_zoom_change",
- EPHY_TYPE_EMBED,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EphyEmbedIface, zoom_change),
- NULL, NULL,
- g_cclosure_marshal_VOID__FLOAT,
- G_TYPE_NONE,
- 1,
- G_TYPE_FLOAT);
-/**
* EphyEmbed::ge-modal-alert:
* @embed:
*
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index 6df34e8d1..8a03b501b 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -145,8 +145,6 @@ struct _EphyEmbedIface
const char *address,
const char *target,
const char *features);
- void (* zoom_change) (EphyEmbed *embed,
- float new_zoom);
void (* content_blocked) (EphyEmbed *embed,
const char *uri);
gboolean (* modal_alert) (EphyEmbed *embed);
diff --git a/embed/webkit/webkit-embed.c b/embed/webkit/webkit-embed.c
index c59d0b493..4d483844a 100644
--- a/embed/webkit/webkit-embed.c
+++ b/embed/webkit/webkit-embed.c
@@ -28,6 +28,7 @@
#include "ephy-embed-single.h"
#include "ephy-string.h"
#include "ephy-embed-event.h"
+#include "ephy-embed-utils.h"
#include <webkit/webkit.h>
#include <string.h>
@@ -214,6 +215,46 @@ webkit_embed_hovering_over_link_cb (WebKitWebView *web_view,
}
static void
+webkit_web_view_zoom_change_cb (WebKitWebView *web_view,
+ GParamSpec *pspec,
+ EphyEmbed *embed)
+{
+ char *address;
+ float zoom;
+
+ g_object_get (G_OBJECT (web_view),
+ "zoom-level", &zoom,
+ NULL);
+
+ /* TODO: need to move the is_setting_zoom flag
+ * somewhere else. It's set by restoring_zoom
+ * in base_embed, which is unused right now. Should
+ * be called each time we load a page in a web_view
+
+ if (bembed->priv->is_setting_zoom) {
+ return;
+ }
+ */
+
+ address = ephy_embed_get_location (embed, TRUE);
+ if (ephy_embed_utils_address_has_web_scheme (address)) {
+ EphyHistory *history;
+ EphyNode *host;
+ history = EPHY_HISTORY
+ (ephy_embed_shell_get_global_history (embed_shell));
+ host = ephy_history_get_host (history, address);
+
+ if (host != NULL) {
+ ephy_node_set_property_float (host,
+ EPHY_NODE_HOST_PROP_ZOOM,
+ zoom);
+ }
+ }
+
+ g_free (address);
+}
+
+static void
webkit_embed_finalize (GObject *object)
{
WebKitEmbed *wembed = WEBKIT_EMBED (object);
@@ -263,6 +304,9 @@ webkit_embed_init (WebKitEmbed *embed)
"signal::hovering-over-link", G_CALLBACK (webkit_embed_hovering_over_link_cb), embed,
NULL);
+ g_signal_connect (G_OBJECT (web_view),
+ "notify::zoom-level", G_CALLBACK (webkit_web_view_zoom_change_cb), embed);
+
webkit_embed_prefs_add_embed (embed);
embed->priv->history = EPHY_HISTORY (ephy_embed_shell_get_global_history (ephy_embed_shell_get_default ()));
@@ -354,7 +398,6 @@ impl_set_zoom (EphyEmbed *embed,
g_return_if_fail (zoom > 0.0);
g_object_set (WEBKIT_EMBED (embed)->priv->web_view, "zoom-level", zoom, NULL);
- g_signal_emit_by_name (embed, "ge_zoom_change", zoom);
}
static void