aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2016-05-02 19:46:16 +0200
committerMarius Halden <marius.h@lden.org>2016-05-07 14:31:03 +0200
commit4a0d0fa7f4bfb02429383a3bda1676cc3f2f16ba (patch)
treeee0d51f0ab7d13f57fb6038cad23e260944ef39a
parent7d44d05f5fa9fdd49e127b0609a61446a0b7a30f (diff)
Add account set offline_is_away
-rw-r--r--irc_im.c4
-rw-r--r--protocols/account.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/irc_im.c b/irc_im.c
index 3e9b2467..c9bd5a54 100644
--- a/irc_im.c
+++ b/irc_im.c
@@ -112,6 +112,10 @@ static gboolean bee_irc_user_status(bee_t *bee, bee_user_t *bu, bee_user_t *old)
irc_t *irc = bee->ui_data;
irc_user_t *iu = bu->ui_data;
+ if (set_getbool(&bu->ic->acc->set, "offline_is_away") && !(bu->flags & BEE_USER_ONLINE)) {
+ bu->flags |= (BEE_USER_ONLINE | BEE_USER_AWAY);
+ }
+
/* Do this outside the if below since away state can change without
the online state changing. */
iu->flags &= ~IRC_USER_AWAY;
diff --git a/protocols/account.c b/protocols/account.c
index 8fa196d0..aa14b0c3 100644
--- a/protocols/account.c
+++ b/protocols/account.c
@@ -75,6 +75,7 @@ account_t *account_add(bee_t *bee, struct prpl *prpl, char *user, char *pass)
s->flags |= SET_NOSAVE | ACC_SET_OFFLINE_ONLY | ACC_SET_LOCKABLE;
set_setstr(&a->set, "username", user);
set_add(&a->set, "offline_user_quits", "true", set_eval_bool, a);
+ set_add(&a->set, "offline_is_away", "false", set_eval_bool, a);
/* Hardcode some more clever tag guesses. */
strcpy(tag, prpl->name);