changeset 32550:f9650f6b636d

merge of 'd3c4fbebab720da0885766add6272f14814edc99' and 'deb06ab6aa118efb674f1a8434ff529e67b28809'
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Thu, 23 Feb 2012 09:01:12 +0000
parents cebed34f92eb (current diff) 3f81e3c3064c (diff)
children c775aca73d75
files ChangeLog
diffstat 5 files changed, 223 insertions(+), 185 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Feb 23 08:32:05 2012 +0000
+++ b/ChangeLog	Thu Feb 23 09:01:12 2012 +0000
@@ -51,6 +51,8 @@
 	Pidgin:
 	* Add support for the GNOME3 Network dialog. (#13882)
 	* Fix rare crash. (#14392)
+	* Add support for the GNOME3 Default Application dialog for configuring
+	  the Browser.
 
 	libpurple:
 	* Support new connection states and signals for NetworkManager 0.9+.
--- a/pidgin/gtkconv.c	Thu Feb 23 08:32:05 2012 +0000
+++ b/pidgin/gtkconv.c	Thu Feb 23 09:01:12 2012 +0000
@@ -8212,6 +8212,7 @@
 add_message_history_to_gtkconv(gpointer data)
 {
 	PidginConversation *gtkconv = data;
+	GtkWebView *webview = GTK_WEBVIEW(gtkconv->webview);
 	int count = 0;
 	int timer = gtkconv->attach.timer;
 	time_t when = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(gtkconv->entry), "attach-start-time"));
@@ -8221,7 +8222,8 @@
 	while (gtkconv->attach.current && count < 100) {  /* XXX: 100 is a random value here */
 		PurpleConvMessage *msg = gtkconv->attach.current->data;
 		if (!im && when && when < purple_conversation_message_get_timestamp(msg)) {
-			gtk_webview_append_html(GTK_WEBVIEW(gtkconv->webview), "<BR><HR>");
+			gtk_webview_append_html(webview, "<BR><HR>");
+			gtk_webview_scroll_to_end(webview, TRUE);
 			g_object_set_data(G_OBJECT(gtkconv->entry), "attach-start-time", NULL);
 		}
 		pidgin_conv_write_conv(
@@ -8268,7 +8270,8 @@
 					purple_conversation_message_get_flags(msg),
 					purple_conversation_message_get_timestamp(msg));
 		}
-		gtk_webview_append_html(GTK_WEBVIEW(gtkconv->webview), "<BR><HR>");
+		gtk_webview_append_html(webview, "<BR><HR>");
+		gtk_webview_scroll_to_end(webview, TRUE);
 		g_object_set_data(G_OBJECT(gtkconv->entry), "attach-start-time", NULL);
 	}
 
--- a/pidgin/gtkdialogs.c	Thu Feb 23 08:32:05 2012 +0000
+++ b/pidgin/gtkdialogs.c	Thu Feb 23 09:01:12 2012 +0000
@@ -142,33 +142,34 @@
 	{NULL, NULL, NULL}
 };
 
-/* Order: Code, then Alphabetical by Last Name */
+/* Order: Code, then Alphabetical by Last Name
+   Use NULL language and code for secondary translators. */
 static const struct translator translators[] = {
 	{N_("Afrikaans"),           "af", "Samuel Murray", "afrikaans@gmail.com"},
-	{N_("Afrikaans"),           "af", "Friedel Wolff", "friedel@translate.org.za"},
+	{NULL,                      NULL, "Friedel Wolff", "friedel@translate.org.za"},
 	{N_("Arabic"),              "ar", "Khaled Hosny", "khaledhosny@eglug.org"},
 	{N_("Assamese"),            "as", "Amitakhya Phukan", "aphukan@fedoraproject.org"},
 	{N_("Belarusian Latin"),    "be@latin", "Ihar Hrachyshka", "ihar.hrachyshka@gmail.com"},
 	{N_("Bulgarian"),           "bg", "Vladimira Girginova", "missing@here.is"},
-	{N_("Bulgarian"),           "bg", "Vladimir (Kaladan) Petkov", "kaladan@gmail.com"},
+	{NULL,                      NULL, "Vladimir (Kaladan) Petkov", "kaladan@gmail.com"},
 	{N_("Bengali"),             "bn", "Israt Jahan", "israt@ankur.org.bd"},
-	{N_("Bengali"),             "bn", "Jamil Ahmed", "jamil@bengalinux.org"},
-	{N_("Bengali"),             "bn", "Samia Nimatullah", "mailsamia2001@yahoo.com"},
+	{NULL,                      NULL, "Jamil Ahmed", "jamil@bengalinux.org"},
+	{NULL,                      NULL, "Samia Nimatullah", "mailsamia2001@yahoo.com"},
 	{N_("Bengali-India"),       "bn_IN", "Runa Bhattacharjee", "runab@fedoraproject.org"},
 	{N_("Bosnian"),             "bs", "Lejla Hadzialic", "lejlah@gmail.com"},
 	{N_("Catalan"),             "ca", "Josep Puigdemont", "josep.puigdemont@gmail.com"},
 	{N_("Valencian-Catalan"),   "ca@valencia", "Toni Hermoso", "toniher@softcatala.org"},
-	{N_("Valencian-Catalan"),   "ca@valencia", "Josep Puigdemont", "tradgnome@softcatala.org"},
+	{NULL,                      NULL, "Josep Puigdemont", "tradgnome@softcatala.org"},
 	{N_("Czech"),               "cs", "David Vachulka", "david@konstrukce-cad.com"},
 	{N_("Danish"),              "da", "Morten Brix Pedersen", "morten@wtf.dk"},
-	{N_("Danish"),              "da", "Peter Bach", "bach.peter@gmail.com"},
+	{NULL,                      NULL, "Peter Bach", "bach.peter@gmail.com"},
 	{N_("German"),              "de", "Björn Voigt", "bjoern@cs.tu-berlin.de"},
-	{N_("German"),              "de", "Jochen Kemnade", "jochenkemnade@web.de"},
+	{NULL,                      NULL, "Jochen Kemnade", "jochenkemnade@web.de"},
 	{N_("Dzongkha"),            "dz", "Norbu", "nor_den@hotmail.com"},
-	{N_("Dzongkha"),            "dz", "Jurmey Rabgay", "jur_gay@yahoo.com"},
-	{N_("Dzongkha"),            "dz", "Wangmo Sherpa", "rinwanshe@yahoo.com"},
+	{NULL,                      NULL, "Jurmey Rabgay", "jur_gay@yahoo.com"},
+	{NULL,                      NULL, "Wangmo Sherpa", "rinwanshe@yahoo.com"},
 	{N_("Greek"),               "el", "Katsaloulis Panayotis", "panayotis@panayotis.com"},
-	{N_("Greek"),               "el", "Bouklis Panos", "panos@echidna-band.com"},
+	{NULL,                      NULL, "Bouklis Panos", "panos@echidna-band.com"},
 	{N_("Australian English"),  "en_AU", "Peter Lawler", "trans@six-by-nine.com.au"},
 	{N_("British English"),     "en_GB", "Phil Hannent", "phil@hannent.co.uk"},
 	{N_("Canadian English"),    "en_CA", "Adam Weinberger", "adamw@gnome.org"},
@@ -177,18 +178,18 @@
 	{N_("Estonian"),            "et", "Ivar Smolin", "okul@linux.ee"},
 	{N_("Basque"),              "eu", "Mikel Pascual Aldabaldetreku", "mikel.paskual@gmail.com"},
 	{N_("Persian"),             "fa", "Elnaz Sarbar", "elnaz@farsiweb.info"},
-	{N_("Persian"),             "fa", "Meelad Zakaria", "meelad@farsiweb.info"},
-	{N_("Persian"),             "fa", "Roozbeh Pournader ", "roozbeh@farsiweb.info"},
+	{NULL,                      NULL, "Meelad Zakaria", "meelad@farsiweb.info"},
+	{NULL,                      NULL, "Roozbeh Pournader ", "roozbeh@farsiweb.info"},
 	{N_("Finnish"),             "fi", "Timo Jyrinki", "timo.jyrinki@iki.fi"},
 	{N_("French"),              "fr", "Éric Boumaour", "zongo_fr@users.sourceforge.net"},
 	{N_("Irish"),               "ga", "Aaron Kearns", "ajkearns6@gmail.com"},
 	{N_("Galician"),            "gl", "Mar Castro", "mariamarcp@gmail.com"},
-	{N_("Galician"),            "gl", "Frco. Javier Rial", "fjrial@cesga.es"},
+	{NULL,                      NULL, "Frco. Javier Rial", "fjrial@cesga.es"},
 	{N_("Gujarati"),            "gu", "Ankit Patel", "ankit_patel@users.sf.net"},
-	{N_("Gujarati"),            "gu", N_("Gujarati Language Team"), "indianoss-gujarati@lists.sourceforge.net"},
+	{NULL,                      NULL, N_("Gujarati Language Team"), "indianoss-gujarati@lists.sourceforge.net"},
 	{N_("Hebrew"),              "he", "Shalom Craimer", "scraimer@gmail.com"},
 	{N_("Hindi"),               "hi", "Sangeeta Kumari", "sangeeta_0975@yahoo.com"},
-	{N_("Hindi"),               "hi", "Rajesh Ranjan", "rajeshkajha@yahoo.com"},
+	{NULL,                      NULL, "Rajesh Ranjan", "rajeshkajha@yahoo.com"},
 	{N_("Croatian"),            "hr", "Sabina Drempetić", "bina91991@googlemail.com"},
 	{N_("Hungarian"),           "hu", "Kelemen Gábor", "kelemeng@gnome.hu"},
 	{N_("Armenian"),            "hy", "David Avsharyan", "avsharyan@gmail.com"},
@@ -200,15 +201,15 @@
 	{N_("Kannada"),             "kn", N_("Kannada Translation team"), "translation@sampada.info"},
 	{N_("Korean"),              "ko", "Sushizang", "sushizang@empal.com"},
 	{N_("Kurdish"),             "ku", "Erdal Ronahi", "erdal.ronahi@gmail.com"},
-	{N_("Kurdish"),             "ku", "Amed Ç. Jiyan", "amedcj@hotmail.com"},
-	{N_("Kurdish"),             "ku", "Rizoyê Xerzî", "rizoxerzi@hotmail.com"},
+	{NULL,                      NULL, "Amed Ç. Jiyan", "amedcj@hotmail.com"},
+	{NULL,                      NULL, "Rizoyê Xerzî", "rizoxerzi@hotmail.com"},
 	{N_("Lao"),                 "lo", "Anousak Souphavah", "anousak@gmail.com"},
 	{N_("Maithili"),            "mai", "Sangeeta Kumari", "sangeeta_0975@yahoo.com"},
-	{N_("Maithili"),            "mai", "Rajesh Ranjan", "rajeshkajha@yahoo.com"},
+	{NULL,                      NULL, "Rajesh Ranjan", "rajeshkajha@yahoo.com"},
 	{N_("Meadow Mari"),         "mhr", "David Preece", "davidpreece1@gmail.com"},
 	{N_("Macedonian"),          "mk", "Arangel Angov ", "arangel@linux.net.mk"},
-	{N_("Macedonian"),          "mk", "Ivana Kirkovska", "ivana.kirkovska@gmail.com"},
-	{N_("Macedonian"),          "mk", "Jovan Naumovski", "jovan@lugola.net"},
+	{NULL,                      NULL, "Ivana Kirkovska", "ivana.kirkovska@gmail.com"},
+	{NULL,                      NULL, "Jovan Naumovski", "jovan@lugola.net"},
 	{N_("Malayalam"),           "ml", "Ani Peter", "apeter@redhat.com"},
 	{N_("Mongolian"),           "mn", "gooyo", NULL},
 	{N_("Marathi"),             "mr", "Sandeep Shedmake", "sandeep.shedmake@gmail.com"},
@@ -225,20 +226,20 @@
 	{N_("Portuguese-Brazil"),   "pt_BR", "Rodrigo Luiz Marques Flores", "rodrigomarquesflores@gmail.com"},
 	{N_("Pashto"),              "ps", "Kashif Masood", "masudmails@yahoo.com"},
 	{N_("Romanian"),            "ro", "Mișu Moldovan", "dumol@gnome.org"},
-	{N_("Romanian"),            "ro", "Andrei Popescu", "andreimpopescu@gmail.com"},
+	{NULL,                      NULL, "Andrei Popescu", "andreimpopescu@gmail.com"},
 	{N_("Russian"),             "ru", "Антон Самохвалов", "samant.ua@mail.ru"},
 	{N_("Slovak"),              "sk", "Jozef Káčer", "quickparser@gmail.com"},
-	{N_("Slovak"),              "sk", "loptosko", "loptosko@gmail.com"},
+	{NULL,                      NULL, "loptosko", "loptosko@gmail.com"},
 	{N_("Slovenian"),           "sl", "Martin Srebotnjak", "miles@filmsi.net"},
 	{N_("Albanian"),            "sq", "Besnik Bleta", "besnik@programeshqip.org"},
 	{N_("Serbian"),             "sr", "Miloš Popović", "gpopac@gmail.com"},
-	{N_("Serbian"),             "sr@Latn", "Miloš Popović", "gpopac@gmail.com"},
+	{N_("Serbian Latin"),       "sr@latin", "Miloš Popović", "gpopac@gmail.com"},
 	{N_("Sinhala"),             "si", "Danishka Navin", "snavin@redhat.com"},
-	{N_("Sinhala"),             "si", "Yajith Ajantha Dayarathna", "yajith@gmail.com"},
+	{NULL,                      NULL, "Yajith Ajantha Dayarathna", "yajith@gmail.com"},
 	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "xake@telia.com"},
 	{N_("Swahili"),             "sw", "Paul Msegeya", "msegeya@gmail.com"},
 	{N_("Tamil"),               "ta", "I. Felix", "ifelix25@gmail.com"},
-	{N_("Tamil"),               "ta", "Viveka Nathan K", "vivekanathan@users.sourceforge.net"},
+	{NULL,                      NULL, "Viveka Nathan K", "vivekanathan@users.sourceforge.net"},
 	{N_("Telugu"),              "te", "Krishnababu Krottapalli", "krottapalli@ymail.com"},
 	{N_("Thai"),                "th", "Isriya Paireepairit", "markpeak@gmail.com"},
 	{N_("Turkish"),             "tr", "Serdar Soytetir", "tulliana@gmail.com"},
@@ -247,10 +248,10 @@
 	{N_("Vietnamese"),          "vi", N_("T.M.Thanh and the Gnome-Vi Team"), "gnomevi-list@lists.sf.net"},
 	{N_("Simplified Chinese"),  "zh_CN", "Aron Xu", "happyaron.xu@gmail.com"},
 	{N_("Hong Kong Chinese"),   "zh_HK", "Abel Cheung", "abelindsay@gmail.com"},
-	{N_("Hong Kong Chinese"),   "zh_HK", "Ambrose C. Li", "acli@ada.dhs.org"},
-	{N_("Hong Kong Chinese"),   "zh_HK", "Paladin R. Liu", "paladin@ms1.hinet.net"},
+	{NULL,                      NULL, "Ambrose C. Li", "acli@ada.dhs.org"},
+	{NULL,                      NULL, "Paladin R. Liu", "paladin@ms1.hinet.net"},
 	{N_("Traditional Chinese"), "zh_TW", "Ambrose C. Li", "acli@ada.dhs.org"},
-	{N_("Traditional Chinese"), "zh_TW", "Paladin R. Liu", "paladin@ms1.hinet.net"},
+	{NULL,                      NULL, "Paladin R. Liu", "paladin@ms1.hinet.net"},
 	{NULL, NULL, NULL, NULL}
 };
 
@@ -260,67 +261,71 @@
 	{N_("Arabic"),              "ar", "Mohamed Magdy", "alnokta@yahoo.com"},
 	{N_("Bulgarian"),           "bg", "Hristo Todorov", NULL},
 	{N_("Bengali"),             "bn", "INDRANIL DAS GUPTA", "indradg@l2c2.org"},
-	{N_("Bengali"),             "bn", "Tisa Nafisa", "tisa_nafisa@yahoo.com"},
+	{NULL,                      NULL, "Tisa Nafisa", "tisa_nafisa@yahoo.com"},
 	{N_("Catalan"),             "ca", "JM Pérez Cáncer", NULL},
-	{N_("Catalan"),             "ca", "Robert Millan", NULL},
+	{NULL,                      NULL, "Robert Millan", NULL},
 	{N_("Czech"),               "cs", "Honza Král", NULL},
-	{N_("Czech"),               "cs", "Miloslav Trmac", "mitr@volny.cz"},
-	{N_("German"),              "de", "Daniel Seifert, Karsten Weiss", NULL},
+	{NULL,                      NULL, "Miloslav Trmac", "mitr@volny.cz"},
+	{N_("German"),              "de", "Daniel Seifert", NULL},
+	{NULL,                      NULL, "Karsten Weiss", NULL},
 	{N_("British English"),     "en_GB", "Luke Ross", "luke@lukeross.name"},
 	{N_("Spanish"),             "es", "JM Pérez Cáncer", NULL},
-	{N_("Spanish"),             "es", "Nicolás Lichtmaier", NULL},
-	{N_("Spanish"),             "es", "Amaya Rodrigo", NULL},
-	{N_("Spanish"),             "es", "Alejandro G Villar", NULL},
+	{NULL,                      NULL, "Nicolás Lichtmaier", NULL},
+	{NULL,                      NULL, "Amaya Rodrigo", NULL},
+	{NULL,                      NULL, "Alejandro G Villar", NULL},
 	{N_("Basque"),              "eu", "Iñaki Larrañaga Murgoitio", "dooteo@zundan.com"},
-	{N_("Basque"),              "eu", "Hizkuntza Politikarako Sailburuordetza", "hizkpol@ej-gv.es"},
+	{NULL,                      NULL, "Hizkuntza Politikarako Sailburuordetza", "hizkpol@ej-gv.es"},
 	{N_("Finnish"),             "fi", "Arto Alakulju", NULL},
-	{N_("Finnish"),             "fi", "Tero Kuusela", NULL},
+	{NULL,                      NULL, "Tero Kuusela", NULL},
 	{N_("French"),              "fr", "Sébastien François", NULL},
-	{N_("French"),              "fr", "Stéphane Pontier", NULL},
-	{N_("French"),              "fr", "Stéphane Wirtel", NULL},
-	{N_("French"),              "fr", "Loïc Jeannin", NULL},
+	{NULL,                      NULL, "Stéphane Pontier", NULL},
+	{NULL,                      NULL, "Stéphane Wirtel", NULL},
+	{NULL,                      NULL, "Loïc Jeannin", NULL},
 	{N_("Galician"),            "gl", "Ignacio Casal Quinteiro", NULL},
 	{N_("Hebrew"),              "he", "Pavel Bibergal", NULL},
 	{N_("Hindi"),               "hi", "Ravishankar Shrivastava", NULL},
 	{N_("Hungarian"),           "hu", "Zoltan Sutto", NULL},
 	{N_("Italian"),             "it", "Salvatore di Maggio", NULL},
 	{N_("Japanese"),            "ja", "Takashi Aihana", NULL},
-	{N_("Japanese"),            "ja", "Ryosuke Kutsuna", NULL},
-	{N_("Japanese"),            "ja", "Taku Yasui", NULL},
-	{N_("Japanese"),            "ja", "Junichi Uekawa", NULL},
+	{NULL,                      NULL, "Ryosuke Kutsuna", NULL},
+	{NULL,                      NULL, "Taku Yasui", NULL},
+	{NULL,                      NULL, "Junichi Uekawa", NULL},
 	{N_("Georgian"),            "ka", "Temuri Doghonadze", NULL},
-	{N_("Korean"),              "ko", "Sang-hyun S, A Ho-seok Lee", NULL},
-	{N_("Korean"),              "ko", "Kyeong-uk Son", NULL},
+	{N_("Korean"),              "ko", "Sang-hyun S", NULL},
+	{NULL,                      NULL, "A Ho-seok Lee", NULL},
+	{NULL,                      NULL, "Kyeong-uk Son", NULL},
 	{N_("Lithuanian"),          "lt", "Laurynas Biveinis", "laurynas.biveinis@gmail.com"},
-	{N_("Lithuanian"),          "lt", "Gediminas Čičinskas", NULL},
-	{N_("Lithuanian"),          "lt", "Andrius Štikonas", NULL},
+	{NULL,                      NULL, "Gediminas Čičinskas", NULL},
+	{NULL,                      NULL, "Andrius Štikonas", NULL},
 	{N_("Macedonian"),          "mk", "Tomislav Markovski", NULL},
 	{N_("Bokmål Norwegian"),    "nb", "Hallvard Glad", "hallvard.glad@gmail.com"},
-	{N_("Bokmål Norwegian"),    "nb", "Petter Johan Olsen", NULL},
-	{N_("Bokmål Norwegian"),    "nb", "Espen Stefansen", "espenas@gmail.com"},
+	{NULL,                      NULL, "Petter Johan Olsen", NULL},
+	{NULL,                      NULL, "Espen Stefansen", "espenas@gmail.com"},
 	{N_("Dutch, Flemish"),      "nl", "Vincent van Adrighem", "V.vanAdrighem@dirck.mine.nu"},
 	{N_("Polish"),              "pl", "Emil Nowak", "emil5@go2.pl"},
-	{N_("Polish"),              "pl", "Paweł Godlewski", "pawel@bajk.pl"},
-	{N_("Polish"),              "pl", "Krzysztof Foltman", "krzysztof@foltman.com"},
-	{N_("Polish"),              "pl", "Piotr Makowski", NULL},
-	{N_("Polish"),              "pl", "Przemysław Sułek", NULL},
+	{NULL,                      NULL, "Paweł Godlewski", "pawel@bajk.pl"},
+	{NULL,                      NULL, "Krzysztof Foltman", "krzysztof@foltman.com"},
+	{NULL,                      NULL, "Piotr Makowski", NULL},
+	{NULL,                      NULL, "Przemysław Sułek", NULL},
 	{N_("Portuguese-Brazil"),   "pt_BR", "Maurício de Lemos Rodrigues Collares Neto", "mauricioc@gmail.com"},
 	{N_("Russian"),             "ru", "Dmitry Beloglazov", "dmaa@users.sf.net"},
-	{N_("Russian"),             "ru", "Alexandre Prokoudine", NULL},
-	{N_("Russian"),             "ru", "Sergey Volozhanin", NULL},
+	{NULL,                      NULL, "Alexandre Prokoudine", NULL},
+	{NULL,                      NULL, "Sergey Volozhanin", NULL},
 	{N_("Slovak"),              "sk", "Daniel Režný", NULL},
-	{N_("Slovak"),              "sk", "helix84", NULL},
-	{N_("Slovak"),              "sk", "Richard Golier", NULL},
+	{NULL,                      NULL, "helix84", NULL},
+	{NULL,                      NULL, "Richard Golier", NULL},
 	{N_("Slovenian"),           "sl", "Matjaz Horvat", NULL},
 	{N_("Serbian"),             "sr", "Danilo Šegan", "dsegan@gmx.net"},
-	{N_("Serbian"),             "sr", "Aleksandar Urosevic", "urke@users.sourceforge.net"},
+	{NULL,                      NULL, "Aleksandar Urosevic", "urke@users.sourceforge.net"},
 	{N_("Swedish"),             "sv", "Tore Lundqvist", NULL},
-	{N_("Swedish"),             "sv", "Christian Rose", NULL},
+	{NULL,                      NULL, "Christian Rose", NULL},
 	{N_("Telugu"),              "te", "Mr. Subbaramaih", "info.gist@cdac.in"},
 	{N_("Turkish"),             "tr", "Ahmet Alp BALKAN", NULL},
-	{N_("Simplified Chinese"),  "zh_CN", "Hashao, Rocky S. Lee", NULL},
-	{N_("Simplified Chinese"),  "zh_CN", "Funda Wang", "fundawang@linux.net.cn"},
-	{N_("Traditional Chinese"), "zh_TW", "Hashao, Rocky S. Lee", NULL},
+	{N_("Simplified Chinese"),  "zh_CN", "Hashao", NULL},
+	{NULL,                      NULL, "Rocky S. Lee", NULL},
+	{NULL,                      NULL, "Funda Wang", "fundawang@linux.net.cn"},
+	{N_("Traditional Chinese"), "zh_TW", "Hashao", NULL},
+	{NULL,                      NULL, "Rocky S. Lee", NULL},
 	{NULL, NULL, NULL, NULL}
 };
 
@@ -329,13 +334,14 @@
 {
 	for (; list->name != NULL; list++) {
 		if (list->email != NULL) {
-			g_string_append_printf(str, "  <a href=\"mailto:%s\">%s</a>%s%s%s<br/>",
-			                       list->email, _(list->name),
+			g_string_append_printf(str,
+			                       "<li><a href=\"mailto:%s\" title=\"%s\">%s</a>%s%s%s</li>",
+			                       list->email, list->email, _(list->name),
 			                       list->role ? " (" : "",
 			                       list->role ? _(list->role) : "",
 			                       list->role ? ")" : "");
 		} else {
-			g_string_append_printf(str, "  %s%s%s%s<br/>",
+			g_string_append_printf(str, "<li>%s%s%s%s</li>",
 			                       _(list->name),
 			                       list->role ? " (" : "",
 			                       list->role ? _(list->role) : "",
@@ -347,18 +353,18 @@
 static void
 add_translators(GString *str, const struct translator *list)
 {
-	for (; list->language != NULL; list++) {
+	for (; list->name != NULL; list++) {
+		if (list->language && list->abbr) {
+			g_string_append_printf(str, "<dt>%s (%s)</dt>",
+			                       _(list->language), list->abbr);
+		}
 		if (list->email != NULL) {
-			g_string_append_printf(str, "  <b>%s (%s)</b> - <a href=\"mailto:%s\">%s</a><br/>",
-			                       _(list->language),
-			                       list->abbr,
-			                       list->email,
+			g_string_append_printf(str,
+			                       "<dd><a href=\"mailto:%s\" title=\"%s\">%s</a></dd>",
+			                       list->email, list->email,
 			                       _(list->name));
 		} else {
-			g_string_append_printf(str, "  <b>%s (%s)</b> - %s<br/>",
-			                       _(list->language),
-			                       list->abbr,
-			                       _(list->name));
+			g_string_append_printf(str, "<dd>%s</dd>", _(list->name));
 		}
 	}
 }
@@ -456,8 +462,6 @@
 	gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
 
 	gtk_webview_append_html(GTK_WEBVIEW(webview), string->str);
-	/* TODO WEBKIT: This doesn't seem to stay at the top. */
-	webkit_web_view_move_cursor(WEBKIT_WEB_VIEW(webview), GTK_MOVEMENT_BUFFER_ENDS, -1);
 
 	button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CLOSE,
 	                G_CALLBACK(destroy_win), win);
@@ -487,37 +491,45 @@
 	str = g_string_sized_new(4096);
 
 	g_string_append_printf(str,
-		"<CENTER><FONT SIZE=\"4\"><B>%s %s</B></FONT></CENTER> (libpurple %s)"
-		"<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION,
+		"<h2>%s %s</h2>"
+		"<strong>(libpurple %s)<br/>%s</strong>",
+		PIDGIN_NAME, DISPLAY_VERSION,
 		purple_core_get_version(), REVISION);
 
 	g_string_append_printf(str,
-		_("%s is a messaging client based on libpurple which is capable of "
+		_("<p>%s is a messaging client based on libpurple which is capable of "
 		  "connecting to multiple messaging services at once.  %s is written "
 		  "in C using GTK+.  %s is released, and may be modified and "
 		  "redistributed,  under the terms of the GPL version 2 (or later).  "
 		  "A copy of the GPL is distributed with %s.  %s is copyrighted by "
 		  "its contributors, a list of whom is also distributed with %s.  "
-		  "There is no warranty for %s.<BR><BR>"), PIDGIN_NAME, PIDGIN_NAME,
+		  "There is no warranty for %s.</p>"), PIDGIN_NAME, PIDGIN_NAME,
 		PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME);
 
 	g_string_append_printf(str,
-			_("<FONT SIZE=\"4\"><B>Helpful Resources</B></FONT><BR>\t<A "
-			  "HREF=\"%s\">Website</A><BR>\t<A HREF=\"%s\">Frequently Asked "
-			  "Questions</A><BR>\tIRC Channel: #pidgin on irc.freenode.net<BR>"
-			  "\tXMPP MUC: devel@conference.pidgin.im<BR><BR>"), PURPLE_WEBSITE,
+			_("<h3>Helpful Resources</h3>"
+			  "<ul>"
+			  "<li><a href=\"%s\" title=\"%s\">Website</a></li>"
+			  "<li><a href=\"%s\" title=\"%s\">Frequently Asked Questions</a></li>"
+			  "<li>IRC Channel: #pidgin on irc.freenode.net</li>"
+			  "<li>XMPP MUC: devel@conference.pidgin.im</li>"
+			  "</ul>"),
+			PURPLE_WEBSITE, PURPLE_WEBSITE,
+			"http://developer.pidgin.im/wiki/FAQ",
 			"http://developer.pidgin.im/wiki/FAQ");
 
 	g_string_append_printf(str,
-			_("<font size=\"4\"><b>Help from other Pidgin users</b></font> is "
-			  "available by e-mailing <a "
-			  "href=\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>"
-			  "This is a <b>public</b> mailing list! "
-			  "(<a href=\"http://pidgin.im/pipermail/support/\">archive</a>)<br/>"
+			_("<p><strong>Help from other Pidgin users</strong> is available "
+			  "by e-mailing <a href=\"mailto:%s\">%s</a>.<br/>"
+			  "This is a <strong>public</strong> mailing list! "
+			  "(<a href=\"%s\" title=\"%s\">archive</a>)<br/>"
 			  "We can't help with third-party protocols or plugins!<br/>"
-			  "This list's primary language is <b>English</b>.  You are "
-			  "welcome to post in another language, but the responses may "
-			  "be less helpful.<br/>"));
+			  "This list's primary language is <strong>English</strong>.  You "
+			  "are welcome to post in another language, but the responses may "
+			  "be less helpful.</p>"),
+			"support@pidgin.im", "support@pidgin.im",
+			"http://pidgin.im/pipermail/support/",
+			"http://pidgin.im/pipermail/support/");
 
 	tmp = g_strdup_printf(_("About %s"), PIDGIN_NAME);
 	about = pidgin_build_help_dialog(tmp, "about", str);
@@ -539,175 +551,179 @@
 	str = g_string_sized_new(4096);
 
 	g_string_append_printf(str,
-		"<FONT SIZE=\"4\"><B>%s %s</B></FONT> (libpurple %s)<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION, purple_core_get_version(), REVISION);
+		"<h2>%s %s</h2>"
+		"<strong>(libpurple %s)<br/>%s</strong>",
+		PIDGIN_NAME, DISPLAY_VERSION, purple_core_get_version(), REVISION);
 
-	g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s</B></FONT><br/>", _("Build Information"));
+	g_string_append_printf(str, "<h3>%s</h3><dl>", _("Build Information"));
 
-	/* The following primarly intented for user/developer interaction and thus
-	   ought not be translated */
+	/* The following is primarily intended for user/developer interaction and
+	   thus ought not be translated */
 
 #ifdef CONFIG_ARGS /* win32 build doesn't use configure */
-	g_string_append(str, "  <b>Arguments to <i>./configure</i>:</b>  " CONFIG_ARGS "<br/>");
+	g_string_append(str, "<dt>Arguments to <em>./configure</em>:</dt><dd>" CONFIG_ARGS "</dd>");
 #endif
 
 #ifndef _WIN32
 #ifdef DEBUG
-	g_string_append(str, "  <b>Print debugging messages:</b> Yes<br/>");
+	g_string_append(str, "<dt>Print debugging messages:</dt><dd>Yes</dd>");
 #else
-	g_string_append(str, "  <b>Print debugging messages:</b> No<br/>");
+	g_string_append(str, "<dt>Print debugging messages:</dt><dd>No</dd>");
 #endif
 #endif
 
 #ifdef PURPLE_PLUGINS
-	g_string_append(str, "  <b>Plugins:</b> Enabled<br/>");
+	g_string_append(str, "<dt>Plugins:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "  <b>Plugins:</b> Disabled<br/>");
+	g_string_append(str, "<dt>Plugins:</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef HAVE_SSL
-	g_string_append(str, "  <b>SSL:</b> SSL support is present.<br/>");
+	g_string_append(str, "<dt>SSL:</dt><dd>SSL support is present.</dd>");
 #else
-	g_string_append(str, "  <b>SSL:</b> SSL support was <b><i>NOT</i></b> compiled!<br/>");
+	g_string_append(str, "<dt>SSL:</dt><dd>SSL support was <strong><em>NOT</em></strong> compiled!</dd>");
 #endif
 
 /* This might be useful elsewhere too, but it is particularly useful for
- * debugging stuff known to be GTK+/Glib bugs on Windows */
+ * debugging stuff known to be GTK+/GLib bugs on Windows */
 #ifdef _WIN32
-	g_string_append_printf(str, "  <b>GTK+ Runtime:</b> %u.%u.%u<br/>"
-		"  <b>Glib Runtime:</b> %u.%u.%u<br/>",
+	g_string_append_printf(str, "<dt>GTK+ Runtime:</dt><dd>%u.%u.%u</dd>"
+		"<dt>GLib Runtime:</dt><dd>%u.%u.%u</dd>",
 		gtk_major_version, gtk_minor_version, gtk_micro_version,
 		glib_major_version, glib_minor_version, glib_micro_version);
 #endif
 
-g_string_append(str, "<br/>  <b>Library Support</b><br/>");
+	g_string_append(str, "</dl><h3>Library Support</h3><dl>");
 
 #ifdef HAVE_CYRUS_SASL
-	g_string_append_printf(str, "    <b>Cyrus SASL:</b> Enabled<br/>");
+	g_string_append_printf(str, "<dt>Cyrus SASL:</dt><dd>Enabled</dd>");
 #else
-	g_string_append_printf(str, "    <b>Cyrus SASL:</b> Disabled<br/>");
+	g_string_append_printf(str, "<dt>Cyrus SASL:</dt><dd>Disabled</dd>");
 #endif
 
 #ifndef _WIN32
 #ifdef HAVE_DBUS
-	g_string_append_printf(str, "    <b>D-Bus:</b> Enabled<br/>");
+	g_string_append_printf(str, "<dt>D-Bus:</dt><dd>Enabled</dd>");
 #else
-	g_string_append_printf(str, "    <b>D-Bus:</b> Disabled<br/>");
+	g_string_append_printf(str, "<dt>D-Bus:</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef HAVE_EVOLUTION_ADDRESSBOOK
-	g_string_append_printf(str, "    <b>Evolution Addressbook:</b> Enabled<br/>");
+	g_string_append_printf(str, "<dt>Evolution Addressbook:</dt><dd>Enabled</dd>");
 #else
-	g_string_append_printf(str, "    <b>Evolution Addressbook:</b> Disabled<br/>");
+	g_string_append_printf(str, "<dt>Evolution Addressbook:</dt><dd>Disabled</dd>");
 #endif
 #endif
 
 #if defined(_WIN32) || defined(USE_INTERNAL_LIBGADU)
-	g_string_append(str, "    <b>Gadu-Gadu library (libgadu):</b> Internal<br/>");
+	g_string_append(str, "<dt>Gadu-Gadu library (libgadu):</dt><dd>Internal</dd>");
 #else
 #ifdef HAVE_LIBGADU
-	g_string_append(str, "    <b>Gadu-Gadu library (libgadu):</b> Enabled<br/>");
+	g_string_append(str, "<dt>Gadu-Gadu library (libgadu):</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>Gadu-Gadu library (libgadu):</b> Disabled<br/>");
+	g_string_append(str, "<dt>Gadu-Gadu library (libgadu):</dt><dd>Disabled</dd>");
 #endif
 #endif
 
 #ifdef USE_GTKSPELL
-	g_string_append(str, "    <b>GtkSpell:</b> Enabled<br/>");
+	g_string_append(str, "<dt>GtkSpell:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>GtkSpell:</b> Disabled<br/>");
+	g_string_append(str, "<dt>GtkSpell:</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef HAVE_GNUTLS
-	g_string_append(str, "    <b>GnuTLS:</b> Enabled<br/>");
+	g_string_append(str, "<dt>GnuTLS:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>GnuTLS:</b> Disabled<br/>");
+	g_string_append(str, "<dt>GnuTLS:</dt><dd>Disabled</dd>");
 #endif
 
 #ifndef _WIN32
 #ifdef USE_GSTREAMER
-	g_string_append(str, "    <b>GStreamer:</b> Enabled<br/>");
+	g_string_append(str, "<dt>GStreamer:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>GStreamer:</b> Disabled<br/>");
+	g_string_append(str, "<dt>GStreamer:</dt><dd>Disabled</dd>");
 #endif
 #endif
 
 #ifndef _WIN32
 #ifdef ENABLE_MONO
-	g_string_append(str, "    <b>Mono:</b> Enabled<br/>");
+	g_string_append(str, "<dt>Mono:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>Mono:</b> Disabled<br/>");
+	g_string_append(str, "<dt>Mono:</dt><dd>Disabled</dd>");
 #endif
 #endif
 
 #ifndef _WIN32
 #ifdef HAVE_NETWORKMANAGER
-	g_string_append(str, "    <b>NetworkManager:</b> Enabled<br/>");
+	g_string_append(str, "<dt>NetworkManager:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>NetworkManager:</b> Disabled<br/>");
+	g_string_append(str, "<dt>NetworkManager:</dt><dd>Disabled</dd>");
 #endif
 #endif
 
 #ifdef HAVE_NSS
-	g_string_append(str, "    <b>Network Security Services (NSS):</b> Enabled<br/>");
+	g_string_append(str, "<dt>Network Security Services (NSS):</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>Network Security Services (NSS):</b> Disabled<br/>");
+	g_string_append(str, "<dt>Network Security Services (NSS):</dt><dd>Disabled</dd>");
 #endif
 
-if (purple_plugins_find_with_id("core-perl") != NULL)
-	g_string_append(str, "    <b>Perl:</b> Enabled<br/>");
-else
-	g_string_append(str, "    <b>Perl:</b> Disabled<br/>");
+	if (purple_plugins_find_with_id("core-perl") != NULL)
+		g_string_append(str, "<dt>Perl:</dt><dd>Enabled</dd>");
+	else
+		g_string_append(str, "<dt>Perl:</dt><dd>Disabled</dd>");
 
-if (purple_plugins_find_with_id("core-tcl") != NULL) {
-	g_string_append(str, "    <b>Tcl:</b> Enabled<br/>");
+	if (purple_plugins_find_with_id("core-tcl") != NULL) {
+		g_string_append(str, "<dt>Tcl:</dt><dd>Enabled</dd>");
 #ifdef HAVE_TK
-	g_string_append(str, "    <b>Tk:</b> Enabled<br/>");
+		g_string_append(str, "<dt>Tk:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>Tk:</b> Disabled<br/>");
+		g_string_append(str, "<dt>Tk:</dt><dd>Disabled</dd>");
 #endif
-} else {
-	g_string_append(str, "    <b>Tcl:</b> Disabled<br/>");
-	g_string_append(str, "    <b>Tk:</b> Disabled<br/>");
-}
+	} else {
+		g_string_append(str, "<dt>Tcl:</dt><dd>Disabled</dd>");
+		g_string_append(str, "<dt>Tk:</dt><dd>Disabled</dd>");
+	}
 
 #ifdef USE_IDN
-	g_string_append(str, "    <b>UTF-8 DNS (IDN):</b> Enabled<br/>");
+	g_string_append(str, "<dt>UTF-8 DNS (IDN):</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>UTF-8 DNS (IDN):</b> Disabled<br/>");
+	g_string_append(str, "<dt>UTF-8 DNS (IDN):</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef USE_VV
-	g_string_append(str, "    <b>Voice and Video:</b> Enabled<br/>");
+	g_string_append(str, "<dt>Voice and Video:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>Voice and Video:</b> Disabled<br/>");
+	g_string_append(str, "<dt>Voice and Video:</dt><dd>Disabled</dd>");
 #endif
 
 #ifndef _WIN32
 #ifdef USE_SM
-	g_string_append(str, "    <b>X Session Management:</b> Enabled<br/>");
+	g_string_append(str, "<dt>X Session Management:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>X Session Management:</b> Disabled<br/>");
+	g_string_append(str, "<dt>X Session Management:</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef USE_SCREENSAVER
-	g_string_append(str, "    <b>XScreenSaver:</b> Enabled<br/>");
+	g_string_append(str, "<dt>XScreenSaver:</dt><dd>Enabled</dd>");
 #else
-	g_string_append(str, "    <b>XScreenSaver:</b> Disabled<br/>");
+	g_string_append(str, "<dt>XScreenSaver:</dt><dd>Disabled</dd>");
 #endif
 
 #ifdef LIBZEPHYR_EXT
-	g_string_append(str, "    <b>Zephyr library (libzephyr):</b> External<br/>");
+	g_string_append(str, "<dt>Zephyr library (libzephyr):</dt><dd>External</dd>");
 #else
-	g_string_append(str, "    <b>Zephyr library (libzephyr):</b> Internal<br/>");
+	g_string_append(str, "<dt>Zephyr library (libzephyr):</dt><dd>Internal</dd>");
 #endif
 
 #ifdef ZEPHYR_USES_KERBEROS
-	g_string_append(str, "    <b>Zephyr uses Kerberos:</b> Yes<br/>");
+	g_string_append(str, "<dt>Zephyr uses Kerberos:</dt><dd>Yes</dd>");
 #else
-	g_string_append(str, "    <b>Zephyr uses Kerberos:</b> No<br/>");
+	g_string_append(str, "<dt>Zephyr uses Kerberos:</dt><dd>No</dd>");
 #endif
 #endif
 
+	g_string_append(str, "</dl>");
+
 	/* End of not to be translated section */
 
 	tmp = g_strdup_printf(_("%s Build Information"), PIDGIN_NAME);
@@ -730,27 +746,28 @@
 	str = g_string_sized_new(4096);
 
 	/* Current Developers */
-	g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><ul>",
 						   _("Current Developers"));
 	add_developers(str, developers);
-	g_string_append(str, "<BR/>");
+	g_string_append(str, "</ul>");
 
 	/* Crazy Patch Writers */
-	g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><ul>",
 						   _("Crazy Patch Writers"));
 	add_developers(str, patch_writers);
-	g_string_append(str, "<BR/>");
+	g_string_append(str, "</ul>");
 
 	/* Retired Developers */
-	g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><ul>",
 						   _("Retired Developers"));
 	add_developers(str, retired_developers);
-	g_string_append(str, "<BR/>");
+	g_string_append(str, "</ul>");
 
 	/* Retired Crazy Patch Writers */
-	g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><ul>",
 						   _("Retired Crazy Patch Writers"));
 	add_developers(str, retired_patch_writers);
+	g_string_append(str, "</ul>");
 
 	tmp = g_strdup_printf(_("%s Developer Information"), PIDGIN_NAME);
 	developer_info = pidgin_build_help_dialog(tmp, "developer_info", str);
@@ -772,15 +789,16 @@
 	str = g_string_sized_new(4096);
 
 	/* Current Translators */
-	g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><dl>",
 						   _("Current Translators"));
 	add_translators(str, translators);
-	g_string_append(str, "<BR/>");
+	g_string_append(str, "</dl>");
 
 	/* Past Translators */
-	g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
+	g_string_append_printf(str, "<h3>%s</h3><dl>",
 						   _("Past Translators"));
 	add_translators(str, past_translators);
+	g_string_append(str, "</dl>");
 
 	tmp = g_strdup_printf(_("%s Translator Information"), PIDGIN_NAME);
 	translator_info = pidgin_build_help_dialog(tmp, "translator_info", str);
@@ -801,14 +819,14 @@
 
 	str = g_string_sized_new(4096);
 
-	g_string_append_printf(str, "<FONT SIZE=\"4\">%s</FONT><BR/>",
-			_("Plugin Information"));
+	g_string_append_printf(str, "<h2>%s</h2><dl>", _("Plugin Information"));
 
 	for(l = purple_plugins_get_all(); l; l = l->next) {
 		plugin = (PurplePlugin *)l->data;
 
 		pname = g_markup_escape_text(purple_plugin_get_name(plugin), -1);
-		pauthor = g_markup_escape_text(purple_plugin_get_author(plugin), -1);
+		if ((pauthor = (char *)purple_plugin_get_author(plugin)) != NULL)
+			pauthor = g_markup_escape_text(pauthor, -1);
 		pver = purple_plugin_get_version(plugin);
 		pwebsite = purple_plugin_get_homepage(plugin);
 		pid = purple_plugin_get_id(plugin);
@@ -816,22 +834,29 @@
 		ploaded = purple_plugin_is_loaded(plugin);
 
 		g_string_append_printf(str,
-				"<FONT SIZE=\"3\"><B>%s</B></FONT><BR/><FONT SIZE=\"2\">"
-				"\t<B>Author:</B> %s<BR/>\t<B>Version:</B> %s<BR/>"
-				"\t<B>Website:</B> %s<BR/>\t<B>ID String:</B> %s<BR/>"
-				"\t<B>Loadable:</B> %s<BR/>\t<B>Loaded:</B> %s<BR/>"
-				"<BR/></FONT>", pname, pauthor ? pauthor : "(null)",
+				"<dt>%s</dt><dd>"
+				"<b>Author:</b> %s<br/>"
+				"<b>Version:</b> %s<br/>"
+				"<b>Website:</b> %s<br/>"
+				"<b>ID String:</b> %s<br/>"
+				"<b>Loadable:</b> %s<br/>"
+				"<b>Loaded:</b> %s"
+				"</dd><br/>",
+				pname, pauthor ? pauthor : "(null)",
 				pver, pwebsite, pid,
-				punloadable ? "<FONT COLOR=\"#FF0000\"><B>No</B></FONT>" : "Yes",
+				punloadable ? "<span style=\"color: #FF0000;\"><b>No</b></span>" : "Yes",
 				ploaded ? "Yes" : "No");
+
+		g_free(pname);
+		g_free(pauthor);
 	}
 
+	g_string_append(str, "</dl>");
+
 	plugins_info = pidgin_build_help_dialog(title, "plugins_info", str);
 	g_signal_connect(G_OBJECT(plugins_info), "destroy",
 			G_CALLBACK(gtk_widget_destroyed), &plugins_info);
 	g_free(title);
-	g_free(pname);
-	g_free(pauthor);
 }
 
 static void
--- a/pidgin/gtkprefs.c	Thu Feb 23 08:32:05 2012 +0000
+++ b/pidgin/gtkprefs.c	Thu Feb 23 09:01:12 2012 +0000
@@ -1819,11 +1819,11 @@
 
 #ifndef _WIN32
 static void
-browser_button_clicked_cb(GtkWidget *button, gpointer null)
+browser_button_clicked_cb(GtkWidget *button, gchar *path)
 {
 	GError *err = NULL;
 
-	if (g_spawn_command_line_async ("gnome-default-applications-properties", &err))
+	if (g_spawn_command_line_async(path, &err))
 		return;
 
 	purple_notify_error(NULL, NULL, _("Cannot start browser configuration program."), err->message);
@@ -2094,8 +2094,8 @@
 
 	vbox = pidgin_make_frame (ret, _("Browser Selection"));
 
-	if(purple_running_gnome()) {
-		gchar *path = g_find_program_in_path("gnome-default-applications-properties");
+	if (purple_running_gnome()) {
+		gchar *path;
 
 		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
 		label = gtk_label_new(_("Browser preferences are configured in GNOME preferences"));
@@ -2105,19 +2105,28 @@
 		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
 		gtk_container_add(GTK_CONTAINER(vbox), hbox);
 
-		if(path == NULL) {
+		path = g_find_program_in_path("gnome-control-center");
+		if (path != NULL) {
+			gchar *tmp = g_strdup_printf("%s info", path);
+			g_free(path);
+			path = tmp;
+		} else {
+			path = g_find_program_in_path("gnome-default-applications-properties");
+		}
+
+		if (path == NULL) {
 			label = gtk_label_new(NULL);
 			gtk_label_set_markup(GTK_LABEL(label),
 								 _("<b>Browser configuration program was not found.</b>"));
 			gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 		} else {
 			browser_button = gtk_button_new_with_mnemonic(_("Configure _Browser"));
-			g_signal_connect(G_OBJECT(browser_button), "clicked",
-							 G_CALLBACK(browser_button_clicked_cb), NULL);
+			g_signal_connect_data(G_OBJECT(browser_button), "clicked",
+			                      G_CALLBACK(browser_button_clicked_cb), path,
+			                      (GClosureNotify)g_free, 0);
 			gtk_box_pack_start(GTK_BOX(hbox), browser_button, FALSE, FALSE, 0);
 		}
 
-		g_free(path);
 		gtk_widget_show_all(ret);
 	} else {
 		sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
--- a/pidgin/gtkwebview.c	Thu Feb 23 08:32:05 2012 +0000
+++ b/pidgin/gtkwebview.c	Thu Feb 23 09:01:12 2012 +0000
@@ -579,7 +579,6 @@
 	char *script = g_strdup_printf("document.write(%s)", escaped);
 	webkit_web_view_execute_script(WEBKIT_WEB_VIEW(webview), script);
 	priv->empty = FALSE;
-	gtk_webview_scroll_to_end(webview, TRUE);
 	g_free(script);
 	g_free(escaped);
 }