svnno****@sourc*****
svnno****@sourc*****
Sun Aug 30 06:38:26 JST 2009
Revision: 3798 http://sourceforge.jp/projects/kazehakase/svn/view?view=rev&revision=3798 Author: ikezoe Date: 2009-08-30 06:38:26 +0900 (Sun, 30 Aug 2009) Log Message: ----------- * module/embed/per-process/kz-dbus-embed-delegate.c: Load the first URI after "ready" signal is received. Modified Paths: -------------- kazehakase/trunk/ChangeLog kazehakase/trunk/module/embed/per-process/kz-dbus-embed-delegate.c Modified: kazehakase/trunk/ChangeLog =================================================================== --- kazehakase/trunk/ChangeLog 2009-08-29 11:07:05 UTC (rev 3797) +++ kazehakase/trunk/ChangeLog 2009-08-29 21:38:26 UTC (rev 3798) @@ -1,3 +1,8 @@ +2009-08-30 Hiroyuki Ikezoe <poinc****@ikezo*****> + + * module/embed/per-process/kz-dbus-embed-delegate.c: Load the first URI + after "ready" signal is received. + 2009-08-29 Hiroyuki Ikezoe <poinc****@ikezo*****> * dbus: Sample program consists of per-process tab. Modified: kazehakase/trunk/module/embed/per-process/kz-dbus-embed-delegate.c =================================================================== --- kazehakase/trunk/module/embed/per-process/kz-dbus-embed-delegate.c 2009-08-29 11:07:05 UTC (rev 3797) +++ kazehakase/trunk/module/embed/per-process/kz-dbus-embed-delegate.c 2009-08-29 21:38:26 UTC (rev 3798) @@ -71,6 +71,7 @@ guint watch_id; gchar *title; gchar *location; + gboolean ready; }; static GType kz_type_dbus_embed_delegate = 0; @@ -107,8 +108,8 @@ static void zoom (KzEmbed *embed, gint zoom, gboolean reflow); -static const gchar *get_title (KzEmbed *kzembed); -static const gchar *get_location (KzEmbed *kzembed); +static const gchar *get_title (KzEmbed *embed); +static const gchar *get_location (KzEmbed *embed); static gboolean kz_dbus_embed_delegate_ready (KzDBusEmbedDelegate *object, guint32 process_id, gchar **address, guint32 *id, gchar **engine_name, GError **error); static gboolean kz_dbus_embed_delegate_location (KzDBusEmbedDelegate *object, gchar *location, GError **error); @@ -203,15 +204,21 @@ static gboolean kz_dbus_embed_delegate_ready (KzDBusEmbedDelegate *object, - guint32 process_id, - gchar **address, - guint32 *embed_id, - gchar **engine_name, - GError **error) + guint32 process_id, + gchar **address, + guint32 *embed_id, + gchar **engine_name, + GError **error) { + KzDBusEmbedDelegatePrivate *priv = KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(object); + *engine_name = g_strdup("gecko"); *embed_id = kz_dbus_embed_delegate_get_embed_id(object); + priv->ready = TRUE; + if (priv->location) + load_uri(KZ_EMBED(object), priv->location); + return TRUE; } @@ -625,6 +632,10 @@ dbus_g_connection_unref(priv->connection); priv->connection = NULL; } + if (priv->proxy) { + g_object_unref(priv->proxy); + priv->proxy = NULL; + } if (priv->process_id > 0) { kill(priv->process_id, SIGKILL); g_spawn_close_pid(priv->process_id); @@ -704,9 +715,11 @@ priv->socket_address = NULL; priv->connection = NULL; + priv->proxy = NULL; priv->process_id = -1; priv->title = NULL; priv->location = NULL; + priv->ready = FALSE; } GtkWidget * @@ -720,7 +733,11 @@ static void load_uri (KzEmbed *embed, const gchar *uri) { - g_signal_emit(embed, signals[LOAD_URI], 0, uri); + KzDBusEmbedDelegatePrivate *priv = KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(embed); + if (!priv->ready) + priv->location = g_strdup(uri); + else + g_signal_emit(embed, signals[LOAD_URI], 0, uri); } static void @@ -782,7 +799,7 @@ void kz_dbus_embed_delegate_set_connection (KzDBusEmbedDelegate *delegate, - DBusGConnection *connection) + DBusGConnection *connection) { KzDBusEmbedDelegatePrivate *priv = KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(delegate); priv->connection = dbus_g_connection_ref(connection); @@ -830,15 +847,15 @@ } static const gchar * -get_title (KzEmbed *kzembed) +get_title (KzEmbed *embed) { - return KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(kzembed)->title; + return KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(embed)->title; } static const gchar * -get_location (KzEmbed *kzembed) +get_location (KzEmbed *embed) { - return KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(kzembed)->location; + return KZ_DBUS_EMBED_DELEGATE_GET_PRIVATE(embed)->location; } /*