Changeset 22bf64e


Ignore:
Timestamp:
2005-12-13T23:27:58Z (18 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
11e090b, 703f0f7
Parents:
6aaa221 (diff), e7f46c5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Improved typing notification support. (from f0rked)

Location:
protocols
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/sb.c

    r6aaa221 r22bf64e  
    644644                        if( who )
    645645                        {
    646                                 serv_got_typing( gc, who, 5 );
     646                                serv_got_typing( gc, who, 5, 1 );
    647647                                g_free( who );
    648648                        }
  • protocols/nogaim.c

    r6aaa221 r22bf64e  
    697697}
    698698
    699 void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout )
     699void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type )
    700700{
    701701        user_t *u;
     
    704704                return;
    705705       
    706         if( ( u = user_findhandle( gc, handle ) ) )
    707                 irc_privmsg( gc->irc, u, "PRIVMSG", gc->irc->nick, NULL, "\1TYPING 1\1" );
     706        if( ( u = user_findhandle( gc, handle ) ) ) {
     707                /* If type is:
     708                 * 0: user has stopped typing
     709                 * 1: user is actively typing
     710                 * 2: user has entered text, but is not actively typing
     711                 */
     712                if (type == 0 || type == 1 || type == 2) {
     713                        char buf[256];
     714                        g_snprintf(buf, 256, "\1TYPING %d\1", type);
     715                        irc_privmsg( gc->irc, u, "PRIVMSG", gc->irc->nick, NULL, buf );
     716                }
     717        }
    708718}
    709719
  • protocols/nogaim.h

    r6aaa221 r22bf64e  
    300300G_MODULE_EXPORT void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, int evil, time_t signon, time_t idle, int type, guint caps );
    301301G_MODULE_EXPORT void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 flags, time_t mtime, gint len );
    302 G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout );
     302G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type );
    303303G_MODULE_EXPORT void serv_got_chat_invite( struct gaim_connection *gc, char *handle, char *who, char *msg, GList *data );
    304304G_MODULE_EXPORT struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, char *handle );
  • protocols/oscar/oscar.c

    r6aaa221 r22bf64e  
    24512451        type2 = va_arg(ap, int);
    24522452        va_end(ap);
    2453 
    2454         if(type2 == 0x0001 || type2 == 0x0002)
    2455                 serv_got_typing(gc, sn, 0);
    2456 
     2453   
     2454        if(type2 == 0x0002) {
     2455                /* User is typing */
     2456                serv_got_typing(gc, sn, 0, 1);
     2457        }
     2458        else if (type2 == 0x0001) {
     2459                /* User has typed something, but is not actively typing (stale) */
     2460                serv_got_typing(gc, sn, 0, 2);
     2461        }
     2462        else {
     2463                /* User has stopped typing */
     2464                serv_got_typing(gc, sn, 0, 0);
     2465        }       
     2466       
    24572467        return 1;
    24582468}
  • protocols/yahoo/yahoo.c

    r6aaa221 r22bf64e  
    641641{
    642642        struct gaim_connection *gc = byahoo_get_gc_by_id( id );
    643        
    644         serv_got_typing( gc, who, 1 );
     643        if (stat == 1) {
     644                /* User is typing */
     645                serv_got_typing( gc, who, 1, 1 );
     646        }
     647        else {
     648                /* User stopped typing */
     649                serv_got_typing( gc, who, 1, 0 );
     650        }
    645651}
    646652
Note: See TracChangeset for help on using the changeset viewer.