Mercurial > pidgin.yaz
changeset 18301:f8f726b74b5c
merge of '0463fbaf601f7ae2299e325969cf0324ab2f4dc0'
and 'fcd60b05f8e36e399026f33b10b4498c052da6df'
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 26 Jun 2007 21:17:07 +0000 |
parents | 58b0a4f75ece (current diff) 9171c96ab475 (diff) |
children | 0d948cac4afa |
files | |
diffstat | 1 files changed, 26 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkconv.c Tue Jun 26 20:03:48 2007 +0000 +++ b/pidgin/gtkconv.c Tue Jun 26 21:17:07 2007 +0000 @@ -347,15 +347,28 @@ } } -static PurpleCmdRet -clear_command_cb(PurpleConversation *conv, - const char *cmd, char **args, char **error, void *data) +static void clear_conversation_scrollback(PurpleConversation *conv) { PidginConversation *gtkconv = NULL; gtkconv = PIDGIN_CONVERSATION(conv); gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); +} + +static PurpleCmdRet +clear_command_cb(PurpleConversation *conv, + const char *cmd, char **args, char **error, void *data) +{ + clear_conversation_scrollback(conv); + return PURPLE_CMD_STATUS_OK; +} + +static PurpleCmdRet +clearall_command_cb(PurpleConversation *conv, + const char *cmd, char **args, char **error, void *data) +{ + purple_conversation_foreach(clear_conversation_scrollback); return PURPLE_CMD_STATUS_OK; } @@ -528,13 +541,6 @@ account = purple_conversation_get_account(conv); - if (!purple_account_is_connected(account)) - return; - - if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && - purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) - return; - if (check_for_and_do_command(conv)) { if (gtkconv->entry_growing) { reset_default_size(gtkconv); @@ -544,6 +550,13 @@ return; } + if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && + purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) + return; + + if (!purple_account_is_connected(account)) + return; + buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); @@ -7202,6 +7215,9 @@ purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); + purple_cmd_register("clearall", "", PURPLE_CMD_P_DEFAULT, + PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, + clearall_command_cb, _("clear: Clears all conversation scrollbacks."), NULL); purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, help_command_cb, _("help <command>: Help on a specific command."), NULL);