diff options
-rw-r--r-- | embed/ephy-embed-shell.c | 19 | ||||
-rw-r--r-- | embed/ephy-web-view.c | 3 | ||||
-rw-r--r-- | tests/ephy-embed-shell-test.c | 32 |
3 files changed, 53 insertions, 1 deletions
diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c index fe2969e9b..19e543216 100644 --- a/embed/ephy-embed-shell.c +++ b/embed/ephy-embed-shell.c @@ -74,6 +74,7 @@ enum DOWNLOAD_REMOVED, PREPARE_CLOSE, RESTORED_WINDOW, + WEB_VIEW_CREATED, LAST_SIGNAL }; @@ -489,6 +490,24 @@ ephy_embed_shell_class_init (EphyEmbedShellClass *klass) G_TYPE_NONE, 0); + /** + * EphyEmbedShell::web-view-created: + * @shell: the #EphyEmbedShell + * @view: the newly created #EphyWebView + * + * The ::web-view-created signal will be emitted every time a new + * #EphyWebView is created. + * + **/ + signals[WEB_VIEW_CREATED] = + g_signal_new ("web-view-created", + EPHY_TYPE_EMBED_SHELL, + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + EPHY_TYPE_WEB_VIEW); + g_type_class_add_private (object_class, sizeof (EphyEmbedShellPrivate)); } diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c index 67fc4c7c5..4f739f357 100644 --- a/embed/ephy-web-view.c +++ b/embed/ephy-web-view.c @@ -1284,10 +1284,11 @@ ephy_web_view_constructed (GObject *object) * have both enabled at the same time in WebKit now (although our * API does not reflect this atm). See r67274 in WebKit. */ #ifndef HAVE_WEBKIT2 - /* This is the default behaviour in WebKit2 */ webkit_web_view_set_full_content_zoom (WEBKIT_WEB_VIEW (object), TRUE); #endif + + g_signal_emit_by_name (ephy_embed_shell_get_default (), "web-view-created", object); } static void diff --git a/tests/ephy-embed-shell-test.c b/tests/ephy-embed-shell-test.c index 27c1b9c46..ef30b448b 100644 --- a/tests/ephy-embed-shell-test.c +++ b/tests/ephy-embed-shell-test.c @@ -59,6 +59,31 @@ test_ephy_embed_shell_launch_handler (void) g_object_unref (file); } +#if 0 +static void +web_view_created_cb (EphyEmbedShell *shell, EphyWebView *view, gpointer user_data) +{ + gboolean *web_view_created = (gboolean*)user_data; + *web_view_created = TRUE; +} + +static void +test_ephy_embed_shell_web_view_created (void) +{ + EphyEmbedShell *embed_shell; + GtkWidget *view; + gboolean web_view_created = FALSE; + + embed_shell = ephy_embed_shell_get_default (); + g_signal_connect (embed_shell, "web-view-created", + G_CALLBACK (web_view_created_cb), &web_view_created); + + view = ephy_web_view_new (); + g_assert (web_view_created); + gtk_widget_destroy (view); +} +#endif + int main (int argc, char *argv[]) { @@ -82,6 +107,13 @@ main (int argc, char *argv[]) g_test_add_func ("/embed/ephy-embed-shell/launch_handler", test_ephy_embed_shell_launch_handler); +/* FIXME: this won't run because of the XDG_DATA_{DIRS,HOME} stuff, + * see: https://bugzilla.gnome.org/show_bug.cgi?id=695620 */ +#if 0 + g_test_add_func ("/embed/ephy-embed-shell/web-view-created", + test_ephy_embed_shell_web_view_created); +#endif + ret = g_test_run (); g_object_unref (ephy_embed_shell_get_default ()); |