Pidgin – ‘left conversation’ irritating?

Over the past couple of months I’ve been using Pidgin, and sometimes I find that it’s a bit of an irritation because whenever you close someone’s conversation, they would receive a ‘user has left conversation’ message, not unlike the two following screenshots:



Note: In the first image the original words should actually be “Hoong Ern has left the conversation”, just that I changed it!

So, people who are sensitive would be saying, “How could he close the conversation with me?” Not that nice indeed, so how will we deal with this situation? By not sending the ‘left conversation’ notifications!

Delving into pidgin’s source code to accomplish this, it’s actually very simple to disable, although I must say, it’s a cheap hack, not really a ‘proper’ one. But hey, it works!

Go over to http://pidgin.im, download the tarball for (currently) version 2.3.1 and untar it to the place of your liking. Then, we change the following:

In /libpurple/protocols/jabber/message.c around line 565, add the bolded lines:

case JM_STATE_GONE:
    child = xmlnode_new_child(message, "gone");

    if(!purple_prefs_get_bool("/pidgin/conversations/enable_left_conversation")){
        xmlnode_free(message);                                     
	return;
    }
				
    break;

and in /pidgin/gtkprefs.c around line 1017, add the bolded line:

pidgin_prefs_checkbox(_("Use smooth-scrolling"), PIDGIN_PREFS_ROOT "/conversations/use_smooth_scrolling", vbox);
pidgin_prefs_checkbox(_("Send 'left conversation' messages"), PIDGIN_PREFS_ROOT "/conversations/enable_left_conversation", vbox);

That should be it!

If you want to change the default “<user> has left the conversation” message like I did, you can find that in /libpurple/protocols/jabber/message.c around line 106:

g_snprintf(buf, sizeof(buf),
    _("%s has abandoned the conversation! Traitor!"), escaped);
g_free(escaped);

Just change the line within the ” “s

Now go ahead and

$ ./configure && make && sudo make install

from the main pidgin-2.3.1 folder and run it! (assuming you’re on linux) You may need to install some extra dependency packages, but hopefully not too much!

Now in the preferences page:

Notice the new option “Send ‘left-conversation’ messages” below the smooth scrolling one. You’re good to go! Go close all your chat windows without worrying anymore!

7 Comments

  1. Robert says:

    Yay! This is awesome, Hoong Ern. 😀

  2. Graton says:

    Thanks! This has been bothering me for some time. I am off to fix it now.

  3. Svetlyo says:

    And what about the option "Close IMs immediately when the tab is closed"? It does exactly the same.

  4. Hoong Ern says:

    Indeed that has the same effect! Thanks for pointing it out - that option is named pretty badly, IMO

    Anyway, I wouldn't suggest anyone follows the steps on this page - first of all it's outdated, and is a messy solution. (Besides, an option already exists)

  5. Ashish Nagar says:

    Thanks for this information. I had been looking for the same for the long time. It seems very iritating reading that notification as somebody has left the conversation.

  6. Ashish Nagar says:

    This solution is for linux. How to do this for windows?

Leave a Reply

Spam, shameless advertising and comments which do not contibute to the value of the post may be deleted!