diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 18 |
2 files changed, 23 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2004-08-08 Christian Persch <chpe@cvs.gnome.org> + + * embed/mozilla/mozilla-embed.cpp: + + Allow XUL windows to open new windows. + 2004-08-08 Christian Neumair <chris@gnome-de.org> * src/bookmarks/ephy-topics-selector.c: @@ -28,7 +34,7 @@ * src/prefs-dialog.c: (create_download_path_label), (download_path_response_cb): - Kill our ellipsizing label implementation, and import GtkLabel + Kill our ellipsising label implementation, and import GtkLabel into our prefix. * configure.in: diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp index a07f54831..7d77f1e6c 100644 --- a/embed/mozilla/mozilla-embed.cpp +++ b/embed/mozilla/mozilla-embed.cpp @@ -1158,7 +1158,7 @@ ephy_embed_iface_init (EphyEmbedIface *iface) iface->has_modified_forms = impl_has_modified_forms; } -void +static void xul_visibility_cb (GtkWidget *embed, gboolean visibility, GtkWidget *window) { if (visibility) @@ -1171,12 +1171,23 @@ xul_visibility_cb (GtkWidget *embed, gboolean visibility, GtkWidget *window) } } -void +static void xul_size_to_cb (GtkWidget *embed, gint width, gint height, gpointer dummy) { gtk_widget_set_size_request (embed, width, height); } +static void +xul_new_window_cb (GtkMozEmbed *embed, + GtkMozEmbed **retval, + guint chrome_mask, + gpointer dummy) +{ + g_assert (chrome_mask & GTK_MOZ_EMBED_FLAG_OPENASCHROME); + + *retval = _mozilla_embed_new_xul_dialog (); +} + GtkMozEmbed * _mozilla_embed_new_xul_dialog (void) { @@ -1196,6 +1207,9 @@ _mozilla_embed_new_xul_dialog (void) g_signal_connect_object (embed, "size_to", G_CALLBACK (xul_size_to_cb), NULL, (GConnectFlags) 0); + g_signal_connect_object (embed, "new_window", + G_CALLBACK (xul_new_window_cb), + NULL, (GConnectFlags) 0); return GTK_MOZ_EMBED (embed); } |