]> git.0d.be Git - empathy.git/commitdiff
Toggle telling others you are typing to them
authorPatrick F. Allen <pallenpost@gmail.com>
Sat, 11 Feb 2012 13:52:14 +0000 (08:52 -0500)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 13 Feb 2012 08:31:12 +0000 (09:31 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=668985

data/org.gnome.Empathy.gschema.xml.in
libempathy-gtk/empathy-chat.c
libempathy/empathy-gsettings.h

index d107a9b14d288dafbe63e62c84593cc500cadde1..8e7d9fd1b55cb38d66baa29fd312f39ecb3caf15 100644 (file)
@@ -206,6 +206,11 @@ present them to the user immediately.</_description>
       <_summary>Enable WebKit Developer Tools</_summary>
       <_description>Whether WebKit developer tools, such as the Web Inspector, should be enabled.</_description>
     </key>
+    <key name="send-chat-states" type="b">
+      <default>true</default>
+      <_summary>Inform other users when you are typing to them</_summary>
+      <_description>Whether to send the 'composing' or 'paused' chat states. Does not currently affect the 'gone' state.</_description>
+    </key>
     <key name="theme-chat-room" type="b">
       <default>true</default>
       <_summary>Use theme for chat rooms</_summary>
index 358b1b98219455295b45dd240d923a4bcb74bb4a..5b2cca929cde073ab2e9c74a61b15b41e26831bc 100644 (file)
@@ -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);
index 6206a549a381ce38d1206c5a85e8a4f879f5531e..fd05141acb8e1a9d31426ba33f84bb656ce706a5 100644 (file)
@@ -66,6 +66,7 @@ G_BEGIN_DECLS
 #define EMPATHY_PREFS_CHAT_AVATAR_IN_ICON          "avatar-in-icon"
 #define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS  "enable-webkit-developer-tools"
 #define EMPATHY_PREFS_CHAT_ROOM_LAST_ACCOUNT       "room-last-account"
+#define EMPATHY_PREFS_CHAT_SEND_CHAT_STATES        "send-chat-states"
 
 #define EMPATHY_PREFS_UI_SCHEMA EMPATHY_PREFS_SCHEMA ".ui"
 #define EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS     "separate-chat-windows"