[kazehakase-svn] [3798] * module/embed/per-process/kz-dbus-embed-delegate. c: Load the first URI

Zurück zum Archiv-Index

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;
 }
 
 /* 




More information about the Kazehakase-cvs mailing list
Zurück zum Archiv-Index