Mercurial > pidgin
diff src/conversation.c @ 9251:45d2ad4ac1c1
[gaim-migrate @ 10050]
Stu Tomlinson has provided a nice patch to move the separation of IM
and Chat windows back into the core from the extplacement plugin.
It's awesome to have crazy patch writers, and even better to have
crazy patch writers who write what I want to write before I do it,
thus saving me the effort.
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Wed, 09 Jun 2004 20:47:07 +0000 |
parents | 1e51236d825e |
children | 947876140943 |
line wrap: on
line diff
--- a/src/conversation.c Wed Jun 09 18:58:26 2004 +0000 +++ b/src/conversation.c Wed Jun 09 20:47:07 2004 +0000 @@ -2230,14 +2230,25 @@ { GaimConvWindow *win; -#if 0 /* Last-minute prefslash */ - if (gaim_prefs_get_bool("/core/conversations/combine_chat_im")) - win = g_list_last(gaim_get_windows())->data; + win = g_list_last(gaim_get_windows())->data; + + if (win == NULL) { + win = gaim_conv_window_new(); + + gaim_conv_window_add_conversation(win, conv); + gaim_conv_window_show(win); + } else - win = gaim_get_last_window_with_type(gaim_conversation_get_type(conv)); -#else - win = g_list_last(gaim_get_windows())->data; -#endif + gaim_conv_window_add_conversation(win, conv); +} + +/* This one places conversations in the last made window of the same type. */ +static void +conv_placement_last_created_win_type(GaimConversation *conv) +{ + GaimConvWindow *win; + + win = gaim_get_last_window_with_type(gaim_conversation_get_type(conv)); if (win == NULL) { win = gaim_conv_window_new(); @@ -2375,51 +2386,6 @@ conv_placement_new_window(conv); } -#if 0 /* PREFSLASH04 */ - -static void -conv_placement_by_number(GaimConversation *conv) -{ - GaimConvWindow *win = NULL; - - if (gaim_prefs_get_bool("/core/conversations/combine_chat_im")) - win = g_list_last(gaim_get_windows())->data; - else - win = gaim_get_last_window_with_type(gaim_conversation_get_type(conv)); - - if (win == NULL) { - win = gaim_conv_window_new(); - - gaim_conv_window_add_conversation(win, conv); - gaim_conv_window_show(win); - } else { - int max_count = gaim_prefs_get_int("/gaim/gtk/conversations/placement_number"); - int count = gaim_conv_window_get_conversation_count(win); - - if (count < max_count) - gaim_conv_window_add_conversation(win, conv); - else { - GList *l = NULL; - - for (l = gaim_get_windows(); l != NULL; l = l->next) { - win = (GaimConvWindow *)l->data; - - count = gaim_conv_window_get_conversation_count(win); - if (count < max_count) { - gaim_conv_window_add_conversation(win, conv); - return; - } - } - win = gaim_conv_window_new(); - - gaim_conv_window_add_conversation(win, conv); - gaim_conv_window_show(win); - } - } -} - -#endif - static ConvPlacementData * get_conv_placement_data(const char *id) { @@ -2457,6 +2423,8 @@ { add_conv_placement_fnc("last", _("Last created window"), conv_placement_last_created_win); + add_conv_placement_fnc("im_chat", _("Separate IM and Chat windows"), + conv_placement_last_created_win_type); add_conv_placement_fnc("new", _("New window"), conv_placement_new_window); add_conv_placement_fnc("group", _("By group"), @@ -2603,7 +2571,6 @@ /* Conversations */ gaim_prefs_add_none("/core/conversations"); gaim_prefs_add_bool("/core/conversations/use_alias_for_title", TRUE); - gaim_prefs_add_bool("/core/conversations/combine_chat_im", FALSE); /* Conversations -> Chat */ gaim_prefs_add_none("/core/conversations/chat");