comparison finch/gntconv.c @ 18637:3597903cf8ff

Just show an empty line, instead of bouncing the text down when the user stops typing.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 25 Jul 2007 20:57:24 +0000
parents be8c4eba38f6
children 39d3a81a5850
comparison
equal deleted inserted replaced
18636:7a5bf42aa8d1 18637:3597903cf8ff
257 g_free(str); 257 g_free(str);
258 if (scroll <= 1) 258 if (scroll <= 1)
259 gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0); 259 gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0);
260 } else { 260 } else {
261 title = get_conversation_title(conv, account); 261 title = get_conversation_title(conv, account);
262 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", NULL, TRUE); 262 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", " ", TRUE);
263 } 263 }
264 gnt_screen_rename_widget(ggc->window, title); 264 gnt_screen_rename_widget(ggc->window, title);
265 g_free(title); 265 g_free(title);
266 } 266 }
267 267
586 { 586 {
587 FinchConv *ggconv = conv->ui_data; 587 FinchConv *ggconv = conv->ui_data;
588 char *strip, *newline; 588 char *strip, *newline;
589 GntTextFormatFlags fl = 0; 589 GntTextFormatFlags fl = 0;
590 int pos; 590 int pos;
591 gboolean notify;
592 591
593 g_return_if_fail(ggconv != NULL); 592 g_return_if_fail(ggconv != NULL);
594 593
595 if (ggconv->active_conv != conv) { 594 if (ggconv->active_conv != conv) {
596 if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) 595 if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV))
599 return; 598 return;
600 } 599 }
601 600
602 pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv)); 601 pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv));
603 602
604 notify = !!gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE); 603 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE);
605 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), "\n", GNT_TEXT_FLAG_NORMAL); 604 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), "\n", GNT_TEXT_FLAG_NORMAL);
606 605
607 /* Unnecessary to print the timestamp for delayed message */ 606 /* Unnecessary to print the timestamp for delayed message */
608 if (purple_prefs_get_bool("/finch/conversations/timestamps")) 607 if (purple_prefs_get_bool("/finch/conversations/timestamps"))
609 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), 608 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
641 strip, fl); 640 strip, fl);
642 641
643 g_free(newline); 642 g_free(newline);
644 g_free(strip); 643 g_free(strip);
645 644
646 if (notify) { 645 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM &&
646 purple_conv_im_get_typing_state(PURPLE_CONV_IM(conv)) == PURPLE_TYPING) {
647 strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_name(conv)); 647 strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_name(conv));
648 gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggconv->tv), 648 gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggconv->tv),
649 strip, GNT_TEXT_FLAG_DIM, "typing"); 649 strip, GNT_TEXT_FLAG_DIM, "typing");
650 g_free(strip); 650 g_free(strip);
651 } 651 }