# # old_revision [adf75e16803f48adaeb629054074f52e928b0792] # # patch "pidgin/gtkconv.c" # from [7057bf38b1eb4bf08b1b783e3a81aa95fdd56a8a] # to [91eada59f54bf4fe5f86387630366c34601e853a] # ============================================================ --- pidgin/gtkconv.c 7057bf38b1eb4bf08b1b783e3a81aa95fdd56a8a +++ pidgin/gtkconv.c 91eada59f54bf4fe5f86387630366c34601e853a @@ -2284,6 +2284,8 @@ insert_text_cb(GtkTextBuffer *textbuffer { PidginConversation *gtkconv = (PidginConversation *)user_data; PurpleConversation *conv; + PurpleConnection *gc; + PurplePluginProtocolInfo *prpl_info = NULL; g_return_if_fail(gtkconv != NULL); @@ -2292,6 +2294,23 @@ insert_text_cb(GtkTextBuffer *textbuffer if (!purple_prefs_get_bool("/purple/conversations/im/send_typing")) return; + if ((gc = purple_conversation_get_gc(conv))) + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if ((prpl_info != NULL) && (prpl_info->options & OPT_PROTO_SLASH_COMMANDS_NATIVE)) { + const char *prefix; + char *cmd; + + prefix = pidgin_get_cmd_prefix(); + cmd = gtk_imhtml_get_text(GTK_IMHTML(textbuffer), NULL, NULL); + + if (cmd && (strncmp(cmd, prefix, strlen(prefix)) == 0)) { + g_free(cmd); + return; + } + g_free(cmd); + } + got_typing_keypress(gtkconv, (gtk_text_iter_is_start(position) && gtk_text_iter_is_end(position))); }