# HG changeset patch # User andrew.victor@mxit.com # Date 1291741126 0 # Node ID 7c320e4c8d8c1c057896ea31fca0bdc4f9036e00 # Parent 0bbe0d78db2787e6448e68633258c6eb1b08830e# Parent c7f0decf419b303dbedb449ad7ba47e08e3112c9 propagate from branch 'im.pidgin.pidgin' (head 240af8944798738f4310d3fcc8f2bc9ff33c2797) to branch 'im.pidgin.pidgin.mxit' (head d4d924811e4a96c620a632e02edaaaddd8b60820) diff -r 0bbe0d78db27 -r 7c320e4c8d8c ChangeLog --- a/ChangeLog Tue Dec 07 15:06:37 2010 +0000 +++ b/ChangeLog Tue Dec 07 16:58:46 2010 +0000 @@ -288,6 +288,23 @@ * Fix file transfers that get stuck with "Waiting for transfer to begin". + MXit: + * Fix filename for the Shocked emoticon. (#12364) + * Implement the new naming conventions where possible. (MXitId, etc) + * Display a message in the Groupchat window when you invite somebody. + * Birthday field in profile cannot be edited when server says it is + locked. + * If a buddy is offline, show in their profile when last they were online. + * Handle pushed profile update packets (ie, when changing your avatar via + the Gallery bot). + * If a buddy is offline and we see from their profile that they have + updated their avatar, request the new avatar image from the server. + * Fix a possible crash if a link is clicked while disconnected. + * Unescape any escaped characters in a chatroom nickname. + * Add the new MXit moods and emoticons. + * MXit emoticons added to the small emoticon theme. + * Ability to re-invite a contact in Rejected or Deleted state. + version 2.7.2 (07/21/2010): AIM and ICQ: * Fix a crash bug related to X-Status messages that can be triggered by diff -r 0bbe0d78db27 -r 7c320e4c8d8c libpurple/protocols/mxit/login.c --- a/libpurple/protocols/mxit/login.c Tue Dec 07 15:06:37 2010 +0000 +++ b/libpurple/protocols/mxit/login.c Tue Dec 07 16:58:46 2010 +0000 @@ -762,6 +762,12 @@ { purple_debug_info( MXIT_PLUGIN_ID, "mxit_reconnect\n" ); + /* remove the input cb function */ + if ( session->con->inpa ) { + purple_input_remove( session->con->inpa ); + session->con->inpa = 0; + } + /* close existing connection */ session->flags &= ~MXIT_FLAG_CONNECTED; purple_proxy_connect_cancel_with_handle( session->con ); diff -r 0bbe0d78db27 -r 7c320e4c8d8c libpurple/protocols/mxit/mxit.c --- a/libpurple/protocols/mxit/mxit.c Tue Dec 07 15:06:37 2010 +0000 +++ b/libpurple/protocols/mxit/mxit.c Tue Dec 07 16:58:46 2010 +0000 @@ -588,7 +588,33 @@ /*------------------------------------------------------------------------ - * Buddy list menu. + * Re-Invite was selected from the buddy-list menu. + * + * @param node The entry in the buddy list. + * @param ignored (not used) + */ +static void mxit_reinvite( PurpleBlistNode *node, gpointer ignored ) +{ + PurpleBuddy* buddy; + struct contact* contact; + PurpleConnection* gc; + struct MXitSession* session; + + buddy = (PurpleBuddy *)node; + gc = purple_account_get_connection( purple_buddy_get_account( buddy ) ); + session = gc->proto_data; + + contact = purple_buddy_get_protocol_data( (PurpleBuddy*) node ); + if ( !contact ) + return; + + /* send a new invite */ + mxit_send_invite( session, contact->username, contact->alias, contact->groupname ); +} + + +/*------------------------------------------------------------------------ + * Buddy-list menu. * * @param node The entry in the buddy list. */ @@ -597,6 +623,7 @@ PurpleBuddy* buddy; struct contact* contact; GList* m = NULL; + PurpleMenuAction* act; if ( !PURPLE_BLIST_NODE_IS_BUDDY( node ) ) return NULL; @@ -606,6 +633,12 @@ if ( !contact ) return NULL; + if ( ( contact->subtype == MXIT_SUBTYPE_DELETED ) || ( contact->subtype == MXIT_SUBTYPE_REJECTED ) || ( contact->subtype == MXIT_SUBTYPE_NONE ) ) { + /* contact is in Deleted, Rejected or None state */ + act = purple_menu_action_new( _( "Re-Invite" ), PURPLE_CALLBACK( mxit_reinvite ), NULL, NULL ); + m = g_list_append(m, act); + } + return m; }