pidgin/gtkconv.c

changeset 22027
cb272468e48a
parent 22026
4fb8e9f14448
child 22032
8136dd5eeda3
equal deleted inserted replaced
22026:4fb8e9f14448 22027:cb272468e48a
3390 gtk_text_buffer_get_iter_at_mark(buffer, &start, stmark); 3390 gtk_text_buffer_get_iter_at_mark(buffer, &start, stmark);
3391 gtk_text_buffer_get_iter_at_mark(buffer, &end, enmark); 3391 gtk_text_buffer_get_iter_at_mark(buffer, &end, enmark);
3392 gtk_text_buffer_delete_mark(buffer, stmark); 3392 gtk_text_buffer_delete_mark(buffer, stmark);
3393 gtk_text_buffer_delete_mark(buffer, enmark); 3393 gtk_text_buffer_delete_mark(buffer, enmark);
3394 gtk_text_buffer_delete(buffer, &start, &end); 3394 gtk_text_buffer_delete(buffer, &start, &end);
3395 } 3395 } else if (message && *message == '\n' && !*(message + 1))
3396 message = NULL;
3396 3397
3397 if (message) { 3398 if (message) {
3398 GtkTextIter iter; 3399 GtkTextIter iter;
3399 gtk_text_buffer_get_end_iter(buffer, &iter); 3400 gtk_text_buffer_get_end_iter(buffer, &iter);
3400 gtk_text_buffer_create_mark(buffer, "typing-notification-start", &iter, TRUE); 3401 gtk_text_buffer_create_mark(buffer, "typing-notification-start", &iter, TRUE);
3429 if (purple_conv_im_get_typing_state(im) == PURPLE_NOT_TYPING) { 3430 if (purple_conv_im_get_typing_state(im) == PURPLE_NOT_TYPING) {
3430 if (gtkconv->u.im->typing_timer != 0) { 3431 if (gtkconv->u.im->typing_timer != 0) {
3431 g_source_remove(gtkconv->u.im->typing_timer); 3432 g_source_remove(gtkconv->u.im->typing_timer);
3432 gtkconv->u.im->typing_timer = 0; 3433 gtkconv->u.im->typing_timer = 0;
3433 } 3434 }
3434 update_typing_message(gtkconv, NULL); 3435 update_typing_message(gtkconv, "\n");
3435 return; 3436 return;
3436 } 3437 }
3437 3438
3438 if (purple_conv_im_get_typing_state(im) == PURPLE_TYPING) { 3439 if (purple_conv_im_get_typing_state(im) == PURPLE_TYPING) {
3439 if (gtkconv->u.im->typing_timer == 0) { 3440 if (gtkconv->u.im->typing_timer == 0) {
5066 G_CALLBACK(conv_dnd_recv), gtkconv); 5067 G_CALLBACK(conv_dnd_recv), gtkconv);
5067 5068
5068 gtk_text_buffer_create_tag(GTK_IMHTML(gtkconv->imhtml)->text_buffer, "TYPING-NOTIFICATION", 5069 gtk_text_buffer_create_tag(GTK_IMHTML(gtkconv->imhtml)->text_buffer, "TYPING-NOTIFICATION",
5069 "foreground", "#888888", 5070 "foreground", "#888888",
5070 "justification", GTK_JUSTIFY_LEFT, /* XXX: RTL'ify */ 5071 "justification", GTK_JUSTIFY_LEFT, /* XXX: RTL'ify */
5071 "weight", PANGO_WEIGHT_BOLD, NULL); 5072 "weight", PANGO_WEIGHT_BOLD,
5073 "scale", PANGO_SCALE_SMALL,
5074 NULL);
5072 5075
5073 /* Setup the container for the tab. */ 5076 /* Setup the container for the tab. */
5074 gtkconv->tab_cont = tab_cont = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 5077 gtkconv->tab_cont = tab_cont = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5075 g_object_set_data(G_OBJECT(tab_cont), "PidginConversation", gtkconv); 5078 g_object_set_data(G_OBJECT(tab_cont), "PidginConversation", gtkconv);
5076 gtk_container_set_border_width(GTK_CONTAINER(tab_cont), PIDGIN_HIG_BOX_SPACE); 5079 gtk_container_set_border_width(GTK_CONTAINER(tab_cont), PIDGIN_HIG_BOX_SPACE);
5838 5841
5839 purple_signal_emit(pidgin_conversations_get_handle(), 5842 purple_signal_emit(pidgin_conversations_get_handle(),
5840 (type == PURPLE_CONV_TYPE_IM ? "displayed-im-msg" : "displayed-chat-msg"), 5843 (type == PURPLE_CONV_TYPE_IM ? "displayed-im-msg" : "displayed-chat-msg"),
5841 account, name, displaying, conv, flags); 5844 account, name, displaying, conv, flags);
5842 g_free(displaying); 5845 g_free(displaying);
5846 update_typing_message(gtkconv, NULL);
5843 } 5847 }
5844 5848
5845 static void 5849 static void
5846 pidgin_conv_chat_add_users(PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals) 5850 pidgin_conv_chat_add_users(PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals)
5847 { 5851 {

mercurial