diff src/gtkconv.c @ 13842:a9ff4499d9ce

[gaim-migrate @ 16295] Hopefully improve the typing notification code so it's a lot easier to understand. This also creates a distinction between the signals emitted when receiving GAIM_TYPED and GAIM_NOT_TYPING messages (by adding a gaim-typed signal). And the gaim-not-typing signal should work in all cases. Most of this is stuff I changed last week during work, thanks to Meebo committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 20 Jun 2006 08:17:49 +0000
parents dd00149f6f9b
children df0dba522147
line wrap: on
line diff
--- a/src/gtkconv.c	Tue Jun 20 04:05:56 2006 +0000
+++ b/src/gtkconv.c	Tue Jun 20 08:17:49 2006 +0000
@@ -2168,8 +2168,7 @@
 	if (gtk_text_iter_is_start(start_pos) && gtk_text_iter_is_end(end_pos)) {
 
 		/* We deleted all the text, so turn off typing. */
-		if (gaim_conv_im_get_type_again_timeout(im))
-			gaim_conv_im_stop_type_again_timeout(im);
+		gaim_conv_im_stop_send_typed_timeout(im);
 
 		serv_send_typing(gaim_conversation_get_gc(conv),
 						 gaim_conversation_get_name(conv),
@@ -2913,22 +2912,18 @@
 
 	im = GAIM_CONV_IM(conv);
 
-	if (gaim_conv_im_get_type_again_timeout(im))
-		gaim_conv_im_stop_type_again_timeout(im);
-
-	gaim_conv_im_start_type_again_timeout(im);
-
+	gaim_conv_im_stop_send_typed_timeout(im);
+	gaim_conv_im_start_send_typed_timeout(im);
+
+	/* Check if we need to send another GAIM_TYPING message */
 	if (first || (gaim_conv_im_get_type_again(im) != 0 &&
-				  time(NULL) > gaim_conv_im_get_type_again(im))) {
-
-		int timeout = serv_send_typing(gaim_conversation_get_gc(conv),
-									   (char *)gaim_conversation_get_name(conv),
-									   GAIM_TYPING);
-
-		if (timeout)
-			gaim_conv_im_set_type_again(im, time(NULL) + timeout);
-		else
-			gaim_conv_im_set_type_again(im, 0);
+				  time(NULL) > gaim_conv_im_get_type_again(im)))
+	{
+		unsigned int timeout;
+		timeout = serv_send_typing(gaim_conversation_get_gc(conv),
+								   gaim_conversation_get_name(conv),
+								   GAIM_TYPING);
+		gaim_conv_im_set_type_again(im, timeout);
 	}
 }