comparison console/gntconv.c @ 14030:0e70bb6d32fd

[gaim-migrate @ 16632] Do not auto-scroll when I am reading the backlog. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 05 Aug 2006 02:56:18 +0000
parents 7109e6397a31
children c5bfede33622
comparison
equal deleted inserted replaced
14029:d63f59ee6c98 14030:0e70bb6d32fd
219 GaimMessageFlags flags, time_t mtime) 219 GaimMessageFlags flags, time_t mtime)
220 { 220 {
221 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv); /* XXX: ggconv = conv->ui_data; should do */ 221 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv); /* XXX: ggconv = conv->ui_data; should do */
222 char *strip, *newline; 222 char *strip, *newline;
223 GntTextFormatFlags fl = 0; 223 GntTextFormatFlags fl = 0;
224 int pos;
224 225
225 g_return_if_fail(ggconv != NULL); 226 g_return_if_fail(ggconv != NULL);
226 227
227 if (who && *who && (flags & (GAIM_MESSAGE_SEND | GAIM_MESSAGE_RECV))) 228 if (who && *who && (flags & (GAIM_MESSAGE_SEND | GAIM_MESSAGE_RECV)))
228 { 229 {
236 237
237 if (flags & GAIM_MESSAGE_ERROR) 238 if (flags & GAIM_MESSAGE_ERROR)
238 fl |= GNT_TEXT_FLAG_BOLD; 239 fl |= GNT_TEXT_FLAG_BOLD;
239 if (flags & GAIM_MESSAGE_NICK) 240 if (flags & GAIM_MESSAGE_NICK)
240 fl |= GNT_TEXT_FLAG_UNDERLINE; 241 fl |= GNT_TEXT_FLAG_UNDERLINE;
242
243 pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv));
241 244
242 /* XXX: Remove this workaround when textview can parse messages. */ 245 /* XXX: Remove this workaround when textview can parse messages. */
243 newline = gaim_strdup_withhtml(message); 246 newline = gaim_strdup_withhtml(message);
244 strip = gaim_markup_strip_html(newline); 247 strip = gaim_markup_strip_html(newline);
245 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), 248 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
246 strip, fl); 249 strip, fl);
247 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv)); 250 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
248 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0); 251 if (pos <= 1)
252 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
249 253
250 g_free(newline); 254 g_free(newline);
251 g_free(strip); 255 g_free(strip);
252 256
253 if (flags & (GAIM_MESSAGE_RECV | GAIM_MESSAGE_NICK | GAIM_MESSAGE_ERROR)) 257 if (flags & (GAIM_MESSAGE_RECV | GAIM_MESSAGE_NICK | GAIM_MESSAGE_ERROR))