| 4085 return; |
4085 return; |
| 4086 } |
4086 } |
| 4087 |
4087 |
| 4088 /* create hidden conv if hide_new pref is away and account is away */ |
4088 /* create hidden conv if hide_new pref is away and account is away */ |
| 4089 if(strcmp(gaim_prefs_get_string("/gaim/gtk/conversations/im/hide_new"), "away")==0 |
4089 if(strcmp(gaim_prefs_get_string("/gaim/gtk/conversations/im/hide_new"), "away")==0 |
| 4090 && gaim_status_type_get_primitive( |
4090 && !gaim_status_is_available(gaim_account_get_active_status(account))) { |
| 4091 gaim_status_get_type( |
|
| 4092 gaim_account_get_active_status(account))) == GAIM_STATUS_AWAY) { |
|
| 4093 ui_ops->create_conversation = gaim_gtkconv_new_hidden; |
4091 ui_ops->create_conversation = gaim_gtkconv_new_hidden; |
| 4094 gaim_conversation_new(GAIM_CONV_TYPE_IM, account, sender); |
4092 gaim_conversation_new(GAIM_CONV_TYPE_IM, account, sender); |
| 4095 ui_ops->create_conversation = gaim_gtkconv_new; |
4093 ui_ops->create_conversation = gaim_gtkconv_new; |
| 4096 return; |
4094 return; |
| 4097 } |
4095 } |
| 5709 GaimGtkConversation *gtkconv; |
5707 GaimGtkConversation *gtkconv; |
| 5710 |
5708 |
| 5711 if(strcmp(gaim_prefs_get_string("/gaim/gtk/conversations/im/hide_new"), "away")!=0) |
5709 if(strcmp(gaim_prefs_get_string("/gaim/gtk/conversations/im/hide_new"), "away")!=0) |
| 5712 return; |
5710 return; |
| 5713 |
5711 |
| 5714 if(gaim_status_type_get_primitive(gaim_status_get_type(oldstatus))!=GAIM_STATUS_AWAY) |
5712 if(gaim_status_is_available(oldstatus) || !gaim_status_is_available(newstatus)) |
| 5715 return; |
|
| 5716 |
|
| 5717 if(gaim_status_type_get_primitive(gaim_status_get_type(newstatus))==GAIM_STATUS_AWAY) |
|
| 5718 return; |
5713 return; |
| 5719 |
5714 |
| 5720 for (l = hidden_convwin->gtkconvs; l != NULL; l = l->next) { |
5715 for (l = hidden_convwin->gtkconvs; l != NULL; l = l->next) { |
| 5721 gtkconv = l->data; |
5716 gtkconv = l->data; |
| 5722 |
5717 |
| 5723 conv = gtkconv->active_conv; |
5718 conv = gtkconv->active_conv; |
| 5724 |
5719 |
| 5725 if(gaim_status_type_get_primitive( |
5720 if(!gaim_status_is_available( |
| 5726 gaim_status_get_type(gaim_account_get_active_status( |
5721 gaim_account_get_active_status( |
| 5727 gaim_conversation_get_account(conv)))) == GAIM_STATUS_AWAY) |
5722 gaim_conversation_get_account(conv)))) |
| 5728 continue; |
5723 continue; |
| 5729 |
5724 |
| 5730 gaim_gtk_conv_window_remove_gtkconv(hidden_convwin, gtkconv); |
5725 gaim_gtk_conv_window_remove_gtkconv(hidden_convwin, gtkconv); |
| 5731 gaim_gtkconv_placement_place(gtkconv); |
5726 gaim_gtkconv_placement_place(gtkconv); |
| 5732 } |
5727 } |
| 5753 for (l = hidden_convwin->gtkconvs; l != NULL; l = l->next) { |
5748 for (l = hidden_convwin->gtkconvs; l != NULL; l = l->next) { |
| 5754 gtkconv = l->data; |
5749 gtkconv = l->data; |
| 5755 |
5750 |
| 5756 conv = gtkconv->active_conv; |
5751 conv = gtkconv->active_conv; |
| 5757 |
5752 |
| 5758 if(when_away && gaim_status_type_get_primitive( |
5753 if(when_away && !gaim_status_is_available( |
| 5759 gaim_status_get_type(gaim_account_get_active_status( |
5754 gaim_account_get_active_status( |
| 5760 gaim_conversation_get_account(conv)))) == GAIM_STATUS_AWAY) |
5755 gaim_conversation_get_account(conv)))) |
| 5761 continue; |
5756 continue; |
| 5762 |
5757 |
| 5763 gaim_gtk_conv_window_remove_gtkconv(hidden_convwin, gtkconv); |
5758 gaim_gtk_conv_window_remove_gtkconv(hidden_convwin, gtkconv); |
| 5764 gaim_gtkconv_placement_place(gtkconv); |
5759 gaim_gtkconv_placement_place(gtkconv); |
| 5765 } |
5760 } |