Mercurial > pidgin
diff libpurple/protocols/jabber/buddy.c @ 25204:cac2f6203505
Patch from darkrain42
Use idleness when finding buddy resources (most active)
Use resource found using jabber_buddy_find_resource to report idle time
(get rid of an extra function to rank on idle time)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Tue, 18 Nov 2008 20:24:59 +0000 |
parents | c5c4faef04ff |
children | b2f4964768d7 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/buddy.c Tue Nov 18 20:22:57 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.c Tue Nov 18 20:24:59 2008 +0000 @@ -111,20 +111,23 @@ case JABBER_BUDDY_STATE_ONLINE: case JABBER_BUDDY_STATE_CHAT: /* This resource is online/chatty. Prefer to one which isn't either. */ - if ((jbr->state != JABBER_BUDDY_STATE_ONLINE) && (jbr->state != JABBER_BUDDY_STATE_CHAT)) + if (((jbr->state != JABBER_BUDDY_STATE_ONLINE) && (jbr->state != JABBER_BUDDY_STATE_CHAT)) || + (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) jbr = tmp; break; case JABBER_BUDDY_STATE_AWAY: case JABBER_BUDDY_STATE_DND: case JABBER_BUDDY_STATE_UNAVAILABLE: /* This resource is away/dnd/unavailable. Prefer to one which is extended away or unknown. */ - if ((jbr->state == JABBER_BUDDY_STATE_XA) || - (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) + if (((jbr->state == JABBER_BUDDY_STATE_XA) || + (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) || + (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) jbr = tmp; break; case JABBER_BUDDY_STATE_XA: /* This resource is extended away. That's better than unknown. */ - if ((jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) + if (((jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) || + (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) jbr = tmp; break; case JABBER_BUDDY_STATE_UNKNOWN: