[Kazehakase-cvs] CVS update: kazehakase/src/bookmarks

Zurück zum Archiv-Index

Hiroyuki Ikezoe ikezo****@users*****
Tue Jan 2 20:30:52 JST 2007


Index: kazehakase/src/bookmarks/kz-session.c
diff -u kazehakase/src/bookmarks/kz-session.c:1.10 kazehakase/src/bookmarks/kz-session.c:1.11
--- kazehakase/src/bookmarks/kz-session.c:1.10	Tue Jan  2 19:07:15 2007
+++ kazehakase/src/bookmarks/kz-session.c	Tue Jan  2 20:30:51 2007
@@ -18,7 +18,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- *  $Id: kz-session.c,v 1.10 2007/01/02 10:07:15 ikezoe Exp $
+ *  $Id: kz-session.c,v 1.11 2007/01/02 11:30:51 ikezoe Exp $
  */
 
 #include "kz-session.h"
@@ -158,12 +158,24 @@
 }
 
 static void
+cb_window_notify (GObject *object, GParamSpec *spec, KzBookmark *session)
+{
+	save_session(session);
+}
+
+static void
 cb_bookmark_notify (GObject *object, GParamSpec *spec, KzBookmark *session)
 {
 	save_session(session);
 }
 
 static void
+cb_tab_notify (GObject *object, GParamSpec *spec, KzBookmark *session)
+{
+	save_session(session);
+}
+
+static void
 cb_insert_child (KzBookmark *folder, KzBookmark *child, KzBookmark *sibling, KzBookmark *session)
 {
 	g_signal_connect_after(child, "notify",
@@ -182,18 +194,12 @@
 }
 
 static void
-cb_tab_notify (GObject *object, GParamSpec *spec, KzBookmark *session)
-{
-	save_session(session);
-}
-
-static void
 cb_tab_created (KzBookmark *folder, KzBookmark *child, KzBookmark *sibling, KzBookmark *session)
 {
-	g_signal_connect(child, "insert-child",
+	g_signal_connect_after(child, "insert-child",
 			 G_CALLBACK(cb_insert_child),
 			 session);
-	g_signal_connect(child, "remove-child",
+	g_signal_connect_after(child, "remove-child",
 			 G_CALLBACK(cb_remove_child),
 			 session);	
 	g_signal_connect_after(child, "notify",
@@ -222,16 +228,22 @@
 			  KzBookmark *child,
 			  KzBookmark *sibling)
 {
+	if (KZ_BOOKMARK_CLASS (kz_session_parent_class)->insert_child)
+		KZ_BOOKMARK_CLASS (kz_session_parent_class)->insert_child(bookmark, child, sibling);
 	/* 
 	 * This session folder contains each tab.
 	 * We have to watch each folder.
 	 */
-	g_signal_connect(child, "insert-child",
+	g_signal_connect_after(child, "insert-child",
 			 G_CALLBACK(cb_tab_created),
 			 bookmark);
-	g_signal_connect(child, "remove-child",
+	g_signal_connect_after(child, "remove-child",
 			 G_CALLBACK(cb_tab_removed),
 			 bookmark);	
+	g_signal_connect_after(child, "notify",
+			       G_CALLBACK(cb_window_notify),
+			       bookmark);
+	save_session(bookmark);
 }
 
 static void
@@ -243,5 +255,11 @@
 	g_signal_handlers_disconnect_by_func
 		(child,
 		 G_CALLBACK(cb_tab_removed), bookmark);
+	g_signal_handlers_disconnect_by_func
+		(child,
+		 G_CALLBACK(cb_window_notify), bookmark);
+
+	if (KZ_BOOKMARK_CLASS (kz_session_parent_class)->remove_child)
+		KZ_BOOKMARK_CLASS (kz_session_parent_class)->remove_child(bookmark, child);
 }
 


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