Mercurial > pidgin.yaz
comparison pidgin/gtkconv.c @ 21703:50d1ee737a68
Fixes.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 01 Dec 2007 03:28:50 +0000 |
parents | cf579f61b887 |
children | a4b36b22ea94 |
comparison
equal
deleted
inserted
replaced
21702:cf579f61b887 | 21703:50d1ee737a68 |
---|---|
1323 if (timer) | 1323 if (timer) |
1324 purple_timeout_remove(timer); | 1324 purple_timeout_remove(timer); |
1325 timer = purple_timeout_add_seconds(CLOSE_CONV_TIMEOUT_SECS, close_already, conv); | 1325 timer = purple_timeout_add_seconds(CLOSE_CONV_TIMEOUT_SECS, close_already, conv); |
1326 purple_conversation_set_data(conv, "close-timer", GINT_TO_POINTER(timer)); | 1326 purple_conversation_set_data(conv, "close-timer", GINT_TO_POINTER(timer)); |
1327 } | 1327 } |
1328 #if 0 | |
1329 /* I will miss you */ | |
1328 purple_conversation_set_ui_ops(conv, NULL); | 1330 purple_conversation_set_ui_ops(conv, NULL); |
1331 #else | |
1332 pidgin_conv_window_remove_gtkconv(gtkconv->win, gtkconv); | |
1333 pidgin_conv_window_add_gtkconv(hidden_convwin, gtkconv); | |
1334 #endif | |
1329 } | 1335 } |
1330 } | 1336 } |
1331 | 1337 |
1332 static void | 1338 static void |
1333 menu_close_conv_cb(gpointer data, guint action, GtkWidget *widget) | 1339 menu_close_conv_cb(gpointer data, guint action, GtkWidget *widget) |
3112 GList *list; | 3118 GList *list; |
3113 PidginConversation *gtkconv; | 3119 PidginConversation *gtkconv; |
3114 PurpleConversation *conv; | 3120 PurpleConversation *conv; |
3115 GtkWidget *item; | 3121 GtkWidget *item; |
3116 | 3122 |
3117 if (win->window == NULL || win->window == hidden_convwin) | 3123 if (win->window == NULL || win == hidden_convwin) |
3118 return; | 3124 return; |
3119 | 3125 |
3120 gtkconv = pidgin_conv_window_get_active_gtkconv(win); | 3126 gtkconv = pidgin_conv_window_get_active_gtkconv(win); |
3121 if (gtkconv == NULL) | 3127 if (gtkconv == NULL) |
3122 return; | 3128 return; |
5074 static void | 5080 static void |
5075 received_im_msg_cb(PurpleAccount *account, char *sender, char *message, | 5081 received_im_msg_cb(PurpleAccount *account, char *sender, char *message, |
5076 PurpleConversation *conv, PurpleMessageFlags flags) | 5082 PurpleConversation *conv, PurpleMessageFlags flags) |
5077 { | 5083 { |
5078 PurpleConversationUiOps *ui_ops = pidgin_conversations_get_conv_ui_ops(); | 5084 PurpleConversationUiOps *ui_ops = pidgin_conversations_get_conv_ui_ops(); |
5085 gboolean hide = FALSE; | |
5079 | 5086 |
5080 /* create hidden conv if hide_new pref is always */ | 5087 /* create hidden conv if hide_new pref is always */ |
5081 if (strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "always") == 0) | 5088 if (strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "always") == 0) |
5082 { | 5089 hide = TRUE; |
5090 | |
5091 /* create hidden conv if hide_new pref is away and account is away */ | |
5092 if (strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "away") == 0 && | |
5093 !purple_status_is_available(purple_account_get_active_status(account))) | |
5094 hide = TRUE; | |
5095 | |
5096 if (PIDGIN_IS_PIDGIN_CONVERSATION(conv) && !hide) { | |
5097 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); | |
5098 if (gtkconv->win == hidden_convwin) { | |
5099 pidgin_conv_window_remove_gtkconv(gtkconv->win, gtkconv); | |
5100 pidgin_conv_placement_place(gtkconv); | |
5101 } | |
5102 return; | |
5103 } | |
5104 | |
5105 if (hide) { | |
5083 ui_ops->create_conversation = pidgin_conv_new_hidden; | 5106 ui_ops->create_conversation = pidgin_conv_new_hidden; |
5084 purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sender); | 5107 purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sender); |
5085 ui_ops->create_conversation = pidgin_conv_new; | 5108 ui_ops->create_conversation = pidgin_conv_new; |
5086 return; | |
5087 } | |
5088 | |
5089 /* create hidden conv if hide_new pref is away and account is away */ | |
5090 if (strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "away") == 0 && | |
5091 !purple_status_is_available(purple_account_get_active_status(account))) | |
5092 { | |
5093 ui_ops->create_conversation = pidgin_conv_new_hidden; | |
5094 purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sender); | |
5095 ui_ops->create_conversation = pidgin_conv_new; | |
5096 return; | |
5097 } | 5109 } |
5098 } | 5110 } |
5099 | 5111 |
5100 static void | 5112 static void |
5101 pidgin_conv_destroy(PurpleConversation *conv) | 5113 pidgin_conv_destroy(PurpleConversation *conv) |
7451 gboolean pidgin_conv_attach_to_conversation(PurpleConversation *conv) | 7463 gboolean pidgin_conv_attach_to_conversation(PurpleConversation *conv) |
7452 { | 7464 { |
7453 GList *list; | 7465 GList *list; |
7454 PidginConversation *gtkconv; | 7466 PidginConversation *gtkconv; |
7455 | 7467 |
7456 if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) | 7468 if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { |
7457 return FALSE; | 7469 gtkconv = PIDGIN_CONVERSATION(conv); |
7470 if (gtkconv->win != hidden_convwin) | |
7471 return FALSE; | |
7472 pidgin_conv_window_remove_gtkconv(hidden_convwin, gtkconv); | |
7473 pidgin_conv_placement_place(gtkconv); | |
7474 return TRUE; | |
7475 } | |
7458 | 7476 |
7459 pidgin_conv_attach(conv); | 7477 pidgin_conv_attach(conv); |
7460 gtkconv = PIDGIN_CONVERSATION(conv); | 7478 gtkconv = PIDGIN_CONVERSATION(conv); |
7461 | 7479 |
7462 list = purple_conversation_get_message_history(conv); | 7480 list = purple_conversation_get_message_history(conv); |