aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-chat.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-chat.c')
-rw-r--r--libempathy-gtk/empathy-chat.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index 358b1b982..5b2cca929 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -377,11 +377,18 @@ static gboolean
chat_composing_stop_timeout_cb (EmpathyChat *chat)
{
EmpathyChatPriv *priv;
+ gboolean send_chat_states;
priv = GET_PRIV (chat);
priv->composing_stop_timeout_id = 0;
- set_chat_state (chat, TP_CHANNEL_CHAT_STATE_PAUSED);
+ send_chat_states = g_settings_get_boolean (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_SEND_CHAT_STATES);
+ if (!send_chat_states) {
+ set_chat_state (chat, TP_CHANNEL_CHAT_STATE_ACTIVE);
+ } else {
+ set_chat_state (chat, TP_CHANNEL_CHAT_STATE_PAUSED);
+ }
return FALSE;
}
@@ -390,9 +397,16 @@ static void
chat_composing_start (EmpathyChat *chat)
{
EmpathyChatPriv *priv;
+ gboolean send_chat_states;
priv = GET_PRIV (chat);
+ send_chat_states = g_settings_get_boolean (priv->gsettings_chat,
+ EMPATHY_PREFS_CHAT_SEND_CHAT_STATES);
+ if (!send_chat_states) {
+ return;
+ }
+
if (priv->composing_stop_timeout_id) {
/* Just restart the timeout */
chat_composing_remove_timeout (chat);