| 1889 |
1889 |
| 1890 return TRUE; |
1890 return TRUE; |
| 1891 } |
1891 } |
| 1892 |
1892 |
| 1893 static void |
1893 static void |
| |
1894 gaim_gtkconv_set_active_conversation(GaimConversation *conv) |
| |
1895 { |
| |
1896 GaimGtkConversation *gtkconv; |
| |
1897 |
| |
1898 g_return_if_fail(conv != NULL); |
| |
1899 |
| |
1900 gtkconv = GAIM_GTK_CONVERSATION(conv); |
| |
1901 |
| |
1902 if (gtkconv->active_conv == conv) |
| |
1903 return; |
| |
1904 |
| |
1905 gaim_conversation_close_logs(gtkconv->active_conv); |
| |
1906 |
| |
1907 gtkconv->active_conv = conv; |
| |
1908 |
| |
1909 gaim_conversation_set_logging(conv, |
| |
1910 gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(gtkconv->win->menu.logging))); |
| |
1911 } |
| |
1912 |
| |
1913 static void |
| 1894 gaim_gtkconv_switch_active_conversation(GaimConversation *conv) |
1914 gaim_gtkconv_switch_active_conversation(GaimConversation *conv) |
| 1895 { |
1915 { |
| 1896 GaimGtkConversation *gtkconv; |
1916 GaimGtkConversation *gtkconv; |
| 1897 |
1917 |
| 1898 g_return_if_fail(conv != NULL); |
1918 g_return_if_fail(conv != NULL); |
| 1899 |
1919 |
| 1900 gtkconv = GAIM_GTK_CONVERSATION(conv); |
1920 gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 1901 |
1921 |
| 1902 gtkconv->active_conv = conv; |
1922 gaim_gtkconv_set_active_conversation(conv); |
| 1903 |
1923 |
| 1904 gray_stuff_out(gtkconv); |
1924 gray_stuff_out(gtkconv); |
| 1905 update_typing_icon(gtkconv); |
1925 update_typing_icon(gtkconv); |
| 1906 |
|
| 1907 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->win->menu.logging), |
|
| 1908 gaim_conversation_is_logging(conv)); |
|
| 1909 |
1926 |
| 1910 gtk_window_set_title(GTK_WINDOW(gtkconv->win->window), |
1927 gtk_window_set_title(GTK_WINDOW(gtkconv->win->window), |
| 1911 gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); |
1928 gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); |
| 1912 |
1929 |
| 1913 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT); |
1930 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT); |
| 3897 time_t mtime) |
3914 time_t mtime) |
| 3898 { |
3915 { |
| 3899 GaimGtkConversation *gtkconv; |
3916 GaimGtkConversation *gtkconv; |
| 3900 |
3917 |
| 3901 gtkconv = GAIM_GTK_CONVERSATION(conv); |
3918 gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 3902 gtkconv->active_conv = conv; |
3919 gaim_gtkconv_set_active_conversation(conv); |
| 3903 |
3920 |
| 3904 gtkconv->u.im->a_virgin = FALSE; |
3921 gtkconv->u.im->a_virgin = FALSE; |
| 3905 |
3922 |
| 3906 gaim_conversation_write(conv, who, message, flags, mtime); |
3923 gaim_conversation_write(conv, who, message, flags, mtime); |
| 3907 } |
3924 } |
| 3911 const char *message, GaimMessageFlags flags, time_t mtime) |
3928 const char *message, GaimMessageFlags flags, time_t mtime) |
| 3912 { |
3929 { |
| 3913 GaimGtkConversation *gtkconv; |
3930 GaimGtkConversation *gtkconv; |
| 3914 |
3931 |
| 3915 gtkconv = GAIM_GTK_CONVERSATION(conv); |
3932 gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 3916 gtkconv->active_conv = conv; |
3933 gaim_gtkconv_set_active_conversation(conv); |
| 3917 |
3934 |
| 3918 flags |= GAIM_MESSAGE_COLORIZE; |
3935 flags |= GAIM_MESSAGE_COLORIZE; |
| 3919 |
3936 |
| 3920 gaim_conversation_write(conv, who, message, flags, mtime); |
3937 gaim_conversation_write(conv, who, message, flags, mtime); |
| 3921 } |
3938 } |
| 4023 |
4040 |
| 4024 gtkconv = GAIM_GTK_CONVERSATION(conv); |
4041 gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 4025 |
4042 |
| 4026 /* Set the active conversation to the one that just messaged us. */ |
4043 /* Set the active conversation to the one that just messaged us. */ |
| 4027 /* TODO: consider not doing this if the account is offline or something */ |
4044 /* TODO: consider not doing this if the account is offline or something */ |
| 4028 gtkconv->active_conv = conv; |
4045 gaim_gtkconv_set_active_conversation(conv); |
| 4029 |
4046 |
| 4030 gc = gaim_conversation_get_gc(conv); |
4047 gc = gaim_conversation_get_gc(conv); |
| 4031 account = gaim_conversation_get_account(conv); |
4048 account = gaim_conversation_get_account(conv); |
| 4032 win = gtkconv->win; |
4049 win = gtkconv->win; |
| 4033 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
4050 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
| 6093 if (gaim_gtk_conv_window_has_focus(win)) |
6110 if (gaim_gtk_conv_window_has_focus(win)) |
| 6094 gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); |
6111 gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); |
| 6095 |
6112 |
| 6096 /* Update the menubar */ |
6113 /* Update the menubar */ |
| 6097 |
6114 |
| |
6115 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->win->menu.logging), |
| |
6116 gaim_conversation_is_logging(conv)); |
| |
6117 |
| 6098 generate_send_to_items(win); |
6118 generate_send_to_items(win); |
| 6099 |
6119 |
| 6100 gaim_gtkconv_switch_active_conversation(conv); |
6120 gaim_gtkconv_switch_active_conversation(conv); |
| 6101 |
6121 |
| 6102 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |
6122 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(win->menu.sounds), |