Index: src/buddy.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/buddy.c,v
retrieving revision 1.228
diff -u -r1.228 buddy.c
--- src/buddy.c	2001/06/08 23:17:16	1.228
+++ src/buddy.c	2001/06/09 14:40:55
@@ -87,6 +87,7 @@
 GtkWidget *blist = NULL;
 GtkWidget *bpmenu;
 GtkWidget *buddies;
+GtkWidget *buddy_notebook;
 
 void BuddyTickerLogonTimeout( gpointer data );
 void BuddyTickerLogoutTimeout( gpointer data );
@@ -2529,6 +2530,7 @@
 
 
 
+extern void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data);
 void show_buddy_list()
 {
 	
@@ -2546,7 +2548,6 @@
 	GtkWidget *menubar;
 	GtkWidget *vbox;
 	GtkWidget *menuitem;
-        GtkWidget *notebook;
         GtkWidget *label;
         GtkWidget *bbox;
         GtkWidget *tbox;
@@ -2711,7 +2712,8 @@
 
 	vbox       = gtk_vbox_new(FALSE, 0);
         
-        notebook = gtk_notebook_new();
+        buddy_notebook = gtk_notebook_new();
+	gtk_signal_connect(GTK_OBJECT(buddy_notebook), "switch-page", GTK_SIGNAL_FUNC(convo_switch), NULL);
 
  
         
@@ -2806,17 +2808,17 @@
 
 
         label = gtk_label_new(_("Online"));
-        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label);
+        gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), buddypane, label);
         label = gtk_label_new(_("Edit Buddies"));
-	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editpane, label);
+	gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), editpane, label);
 
-        gtk_widget_show_all(notebook);
+        gtk_widget_show_all(buddy_notebook);
 
 	/* Pack things in the vbox */
         gtk_widget_show(vbox);
 
 
-        gtk_widget_show(notebook);
+        gtk_widget_show(buddy_notebook);
 
         /* Enable buttons */
 	
@@ -2824,7 +2826,7 @@
        	gtk_signal_connect(GTK_OBJECT(addbutton), "clicked", GTK_SIGNAL_FUNC(add_buddy_callback), NULL);
        	gtk_signal_connect(GTK_OBJECT(groupbutton), "clicked", GTK_SIGNAL_FUNC(add_group_callback), NULL);
         gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(vbox), buddy_notebook, TRUE, TRUE, 0);
 
         gtk_container_add(GTK_CONTAINER(blist), vbox);
 
Index: src/buddy_chat.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v
retrieving revision 1.97
diff -u -r1.97 buddy_chat.c
--- src/buddy_chat.c	2001/05/31 00:40:54	1.97
+++ src/buddy_chat.c	2001/06/09 14:40:56
@@ -756,7 +756,7 @@
 	GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(chat_notebook),
 			gtk_notebook_get_nth_page(GTK_NOTEBOOK(chat_notebook), page_num));
 	GtkStyle *style;
-	struct conversation *b = g_list_nth_data(chats, page_num);
+	struct conversation *b = g_list_nth_data(chats, page_num - 2 - g_list_length(conversations));
 	if (b && b->window && b->entry)
 		gtk_window_set_focus(GTK_WINDOW(b->window), b->entry);
 	if (!GTK_WIDGET_REALIZED(label))
@@ -794,85 +794,12 @@
 
 	int dispstyle = set_dispstyle(1);
 
-	if (display_options & OPT_DISP_ONE_CHAT_WINDOW) {
-		if (!all_chats) {
-			win = all_chats = b->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-			gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim");
-			gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
-			gtk_container_border_width(GTK_CONTAINER(win), 0);
-			gtk_widget_realize(win);
-			aol_icon(win->window);
-			gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Group Chats"));
-			gtk_signal_connect(GTK_OBJECT(win), "delete_event",
-					   GTK_SIGNAL_FUNC(delete_all_chats), NULL);
+	win = b->window = blist;
 
-			chat_notebook = gtk_notebook_new();
-			if (display_options & OPT_DISP_CHAT_SIDE_TAB) {
-				if (display_options & OPT_DISP_CHAT_BR_TAB) {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
-							GTK_POS_RIGHT);
-				} else {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
-							GTK_POS_LEFT);
-				}
-			} else {
-				if (display_options & OPT_DISP_CHAT_BR_TAB) {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
-							GTK_POS_BOTTOM);
-				} else {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook),
-							GTK_POS_TOP);
-				}
-			}
-			gtk_notebook_set_scrollable(GTK_NOTEBOOK(chat_notebook), TRUE);
-			gtk_notebook_popup_enable(GTK_NOTEBOOK(chat_notebook));
-			gtk_container_add(GTK_CONTAINER(win), chat_notebook);
-			gtk_signal_connect(GTK_OBJECT(chat_notebook), "switch-page",
-					   GTK_SIGNAL_FUNC(chat_switch), NULL);
-			gtk_widget_show(chat_notebook);
-		} else
-			win = b->window = all_chats;
-
-		cont = gtk_vbox_new(FALSE, 5);
-		gtk_container_set_border_width(GTK_CONTAINER(cont), 5);
-		gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, gtk_label_new(b->name));
-		gtk_widget_show(cont);
-	} else {
-		win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-		b->window = win;
-		gtk_object_set_user_data(GTK_OBJECT(win), b);
-		gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim");
-		gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
-		gtk_container_border_width(GTK_CONTAINER(win), 10);
-		gtk_widget_realize(win);
-		aol_icon(win->window);
-		g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name);
-		gtk_window_set_title(GTK_WINDOW(win), buf);
-		gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b);
-
-		cont = gtk_vbox_new(FALSE,5);
-		gtk_container_add(GTK_CONTAINER(win), cont);
-		gtk_widget_show(cont);
-	}
-
-	if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) {
-		GtkWidget *hbox;
-		GtkWidget *label;
-
-		hbox = gtk_hbox_new(FALSE, 0);
-		gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5);
-		gtk_widget_show(hbox);
-
-		label = gtk_label_new(_("Topic:"));
-		gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
-		gtk_widget_show(label);
-
-		b->topic_text = gtk_entry_new();
-		gtk_signal_connect(GTK_OBJECT(b->topic_text), "activate",
-				   GTK_SIGNAL_FUNC(topic_callback), b);
-		gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5);
-		gtk_widget_show(b->topic_text);
-	}
+	cont = gtk_vbox_new(FALSE, 5);
+	gtk_container_set_border_width(GTK_CONTAINER(cont), 5);
+	gtk_notebook_append_page(GTK_NOTEBOOK(buddy_notebook), cont, gtk_label_new(b->name));
+	gtk_widget_show(cont);
 
 	vpaned = gtk_vpaned_new();
 	gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15);
Index: src/conversation.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/conversation.c,v
retrieving revision 1.228
diff -u -r1.228 conversation.c
--- src/conversation.c	2001/06/07 03:12:45	1.228
+++ src/conversation.c	2001/06/09 14:40:56
@@ -394,55 +394,17 @@
 
 int close_callback(GtkWidget *widget, struct conversation *c)
 {
-	if (c->is_chat && (widget == c->close) && !(display_options & OPT_DISP_ONE_CHAT_WINDOW)) {
-		GtkWidget *tmp = c->window;
-		debug_printf("chat clicked close button\n");
-		c->window = NULL;
-		gtk_widget_destroy(tmp);
-		return FALSE;
-	}
-
 	debug_printf("conversation close callback\n");
 
 	if (general_options & OPT_GEN_CHECK_SPELLING)
 		gtkspell_detach(GTK_TEXT(c->entry));
 
 	if (!c->is_chat) {
-		if (c->gc && c->gc->prpl && c->gc->prpl->remove_convo)
-			(*c->gc->prpl->remove_convo)(c->gc, c);
-		if (display_options & OPT_DISP_ONE_WINDOW) {
-			if (g_list_length(conversations) > 1) {
-				gtk_notebook_remove_page(GTK_NOTEBOOK(convo_notebook),
-						g_list_index(conversations, c));
-			} else {
-				if (c->window)
-					gtk_widget_destroy(c->window);
-				c->window = NULL;
-				all_convos = NULL;
-				convo_notebook = NULL;
-			}
-		} else {
-			if (c->window)
-				gtk_widget_destroy(c->window);
-			c->window = NULL;
-		}
+		gtk_notebook_remove_page(GTK_NOTEBOOK(buddy_notebook),
+				g_list_index(conversations, c) + 2);
 	} else {
-		if (display_options & OPT_DISP_ONE_CHAT_WINDOW) {
-			if (g_list_length(chats) > 1) {
-				gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook),
-						g_list_index(chats, c));
-			} else {
-				if (c->window)
-					gtk_widget_destroy(c->window);
-				c->window = NULL;
-				all_chats = NULL;
-				chat_notebook = NULL;
-			}
-		} else {
-			if (c->window)
-				gtk_widget_destroy(c->window);
-			c->window = NULL;
-		}
+		gtk_notebook_remove_page(GTK_NOTEBOOK(buddy_notebook),
+				g_list_index(chats, c) + g_list_length(conversations) + 2);
 	}
 
 	if (c->fg_color_dialog)
@@ -691,64 +653,6 @@
 				gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
 			}
 		}
-		if ((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW)) ||
-		    ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW))) {
-			GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook);
-			if (event->keyval == '[') {
-				gtk_notebook_prev_page(GTK_NOTEBOOK(notebook));
-				gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
-			} else if (event->keyval == ']') {
-				gtk_notebook_next_page(GTK_NOTEBOOK(notebook));
-				gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
-			} else if (event->keyval == GDK_Tab) {
-				GList *ws = (c->is_chat ? chats : conversations);
-				GList *cnv = g_list_nth(ws,
-						gtk_notebook_get_current_page(
-							GTK_NOTEBOOK(notebook)));
-				struct conversation *d = NULL;
-				while (cnv) {
-					d = cnv->data;
-					if (d->unseen)
-						break;
-					cnv = cnv->next;
-					d = NULL;
-				}
-				if (d) {
-					gtk_notebook_set_page(GTK_NOTEBOOK(notebook),
-							g_list_index(ws, d));
-				} else {
-					cnv = ws;
-					while (cnv) {
-						d = cnv->data;
-						if (d->unseen)
-							break;
-						cnv = cnv->next;
-						d = NULL;
-					}
-					if (d) {
-						gtk_notebook_set_page(
-								GTK_NOTEBOOK(notebook),
-								g_list_index(ws, d));
-					} else {
-						cnv = g_list_last(ws);
-						if (c == cnv->data)
-							gtk_notebook_set_page(
-								GTK_NOTEBOOK(notebook), 0);
-						else
-							gtk_notebook_next_page(
-								GTK_NOTEBOOK(notebook));
-					}
-				}
-				gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
-			}
-		}
-	} else if (((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW)) ||
-		    ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW))) &&
-			(event->state & GDK_MOD1_MASK) && isdigit(event->keyval) &&
-			(event->keyval > '0')) {
-		GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook);
-		gtk_notebook_set_page(GTK_NOTEBOOK(notebook), event->keyval - '1');
-		gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event");
 	}
 
 	return TRUE;
@@ -1502,15 +1406,16 @@
 
 	if (((flags & WFLAG_RECV) || (flags & WFLAG_SYSTEM)) &&
 	    ((!c->is_chat && (display_options & OPT_DISP_ONE_WINDOW) &&
-	      (gtk_notebook_get_current_page(GTK_NOTEBOOK(convo_notebook))
-			!= g_list_index(conversations, c))) ||
+	      (gtk_notebook_get_current_page(GTK_NOTEBOOK(buddy_notebook))
+			!= g_list_index(conversations, c) + 2)) ||
 	     ( c->is_chat && (display_options & OPT_DISP_ONE_CHAT_WINDOW) &&
-	      (gtk_notebook_get_current_page(GTK_NOTEBOOK(chat_notebook))
-			!= g_list_index(chats, c))))) {
-		GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook);
+	      (gtk_notebook_get_current_page(GTK_NOTEBOOK(buddy_notebook))
+			!= g_list_index(chats, c) + g_list_length(conversations) + 2)))) {
 		GList *ws = (c->is_chat ? chats : conversations);
-		GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook),
-				gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), g_list_index(ws, c)));
+		int add = (c->is_chat ? 2 + g_list_length(conversations) : 2);
+		GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook),
+				gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook),
+					g_list_index(ws, c) + add));
 		GtkStyle *style = gtk_style_new();
 		if (!GTK_WIDGET_REALIZED(label))
 			gtk_widget_realize(label);
@@ -1946,12 +1851,16 @@
 	}
 }
 
-static void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data)
+void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data)
 {
-	GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(convo_notebook),
-			gtk_notebook_get_nth_page(GTK_NOTEBOOK(convo_notebook), page_num));
+	GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook),
+			gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook), page_num));
 	GtkStyle *style;
-	struct conversation *c = g_list_nth_data(conversations, page_num);
+	struct conversation *c = (page_num >= 2 + g_list_length(conversations)) ?
+		g_list_nth_data(chats, page_num - 2 - g_list_length(conversations)) :
+		page_num >= 2 ? g_list_nth_data(conversations, page_num - 2) : NULL;
+	if (!c)
+		return;
 	if (c && c->window && c->entry)
 		gtk_window_set_focus(GTK_WINDOW(c->window), c->entry);
 	if (!GTK_WIDGET_REALIZED(label))
@@ -2004,66 +1913,13 @@
 	c->fgcol = fgcolor;
 	c->hasfg = 0;
 
-	if (display_options & OPT_DISP_ONE_WINDOW) {
-		if (!all_convos) {
-			win = all_convos = c->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-			gtk_window_set_wmclass(GTK_WINDOW(win), "conversation", "Gaim");
-			gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
-			gtk_container_border_width(GTK_CONTAINER(win), 0);
-			gtk_widget_realize(win);
-			aol_icon(win->window);
-			gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Conversations"));
-			gtk_signal_connect(GTK_OBJECT(win), "delete_event",
-					   GTK_SIGNAL_FUNC(delete_all_convo), NULL);
-
-			convo_notebook = gtk_notebook_new();
-			if (display_options & OPT_DISP_CONV_SIDE_TAB) {
-				if (display_options & OPT_DISP_CONV_BR_TAB) {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook),
-							GTK_POS_RIGHT);
-				} else {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook),
-							GTK_POS_LEFT);
-				}
-			} else  {
-				if (display_options & OPT_DISP_CONV_BR_TAB) {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook),
-							GTK_POS_BOTTOM);
-				} else {
-					gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook),
-							GTK_POS_TOP);
-				}
-			}
-			gtk_notebook_set_scrollable(GTK_NOTEBOOK(convo_notebook), TRUE);
-			gtk_notebook_popup_enable(GTK_NOTEBOOK(convo_notebook));
-			gtk_container_add(GTK_CONTAINER(win), convo_notebook);
-			gtk_signal_connect(GTK_OBJECT(convo_notebook), "switch-page",
-					   GTK_SIGNAL_FUNC(convo_switch), NULL);
-			gtk_widget_show(convo_notebook);
-		} else
-			win = c->window = all_convos;
+	win = c->window = blist;
 
-		cont = gtk_vbox_new(FALSE, 5);
-		gtk_container_set_border_width(GTK_CONTAINER(cont), 5);
-		gtk_notebook_append_page(GTK_NOTEBOOK(convo_notebook), cont, gtk_label_new(c->name));
-		gtk_widget_show(cont);
-	} else {
-		cont = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-		c->window = win;
-		gtk_object_set_user_data(GTK_OBJECT(win), c);
-		gtk_window_set_wmclass(GTK_WINDOW(win), "conversation", "Gaim");
-		gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
-		gtk_container_border_width(GTK_CONTAINER(win), 10);
-		gtk_widget_realize(win);
-		aol_icon(win->window);
-		if ((find_log_info(c->name)) || ((logging_options & OPT_LOG_ALL)))
-			 g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, c->name);
-		else
-			g_snprintf(buf, sizeof(buf), CONVERSATION_TITLE, c->name);
-		gtk_window_set_title(GTK_WINDOW(win), buf);
-		gtk_signal_connect(GTK_OBJECT(win), "delete_event",
-				   GTK_SIGNAL_FUNC(delete_event_convo), c);
-	}
+	cont = gtk_vbox_new(FALSE, 5);
+	gtk_container_set_border_width(GTK_CONTAINER(cont), 5);
+	gtk_notebook_insert_page(GTK_NOTEBOOK(buddy_notebook), cont, gtk_label_new(c->name),
+			1 + g_list_length(conversations));
+	gtk_widget_show(cont);
 
 	paned = gtk_vpaned_new();
 	gtk_paned_set_gutter_size(GTK_PANED(paned), 15);
@@ -2340,14 +2196,14 @@
 
 void set_convo_tab_label(struct conversation *c, char *text)
 {
-	gtk_label_set_text(GTK_LABEL(gtk_notebook_get_tab_label(GTK_NOTEBOOK(convo_notebook),
-					gtk_notebook_get_nth_page(GTK_NOTEBOOK(convo_notebook),
-						g_list_index(conversations, c)))), text);
+	gtk_label_set_text(GTK_LABEL(gtk_notebook_get_tab_label(GTK_NOTEBOOK(buddy_notebook),
+					gtk_notebook_get_nth_page(GTK_NOTEBOOK(buddy_notebook),
+						g_list_index(conversations, c) + 2))), text);
 }
 
 void raise_convo_tab(struct conversation *c)
 {
-	gtk_notebook_set_page(GTK_NOTEBOOK(convo_notebook), g_list_index(conversations, c));
+	gtk_notebook_set_page(GTK_NOTEBOOK(buddy_notebook), g_list_index(conversations, c) + 2);
 	gdk_window_show(c->window->window);
 }
 
Index: src/gaim.h
===================================================================
RCS file: /cvsroot/gaim/gaim/src/gaim.h,v
retrieving revision 1.230
diff -u -r1.230 gaim.h
--- src/gaim.h	2001/06/01 23:56:52	1.230
+++ src/gaim.h	2001/06/09 14:40:57
@@ -439,6 +439,7 @@
 extern GList *chats;
 extern GtkWidget *all_chats;
 extern GtkWidget *chat_notebook;
+extern GtkWidget *buddy_notebook;
 
 extern GtkWidget *joinchat;
 
