# HG changeset patch # User Ka-Hing Cheung # Date 1185065991 0 # Node ID 4efd240ffaa04d85d52a7075a18f3d5c1c9910dc # Parent c7a5cd17b045ec25a3a65a1eef6aca771e5b9a03# Parent 8261beed965369f97c6e4b3ab8ac2275493d9128 merge of '21c2a204378d0369b8d2b6d7b32b6da45cb1ddb2' and 'a55d49d8370e0e949cd461b528bc84ac435e93e9' diff -r c7a5cd17b045 -r 4efd240ffaa0 COPYRIGHT --- a/COPYRIGHT Sun Jul 22 00:58:25 2007 +0000 +++ b/COPYRIGHT Sun Jul 22 00:59:51 2007 +0000 @@ -372,6 +372,7 @@ Todd Troxell Brad Turcotte Junichi Uekawa +Igor Vlasenko István Váradi Martijn van Beers Arjan van de Ven diff -r c7a5cd17b045 -r 4efd240ffaa0 configure.ac --- a/configure.ac Sun Jul 22 00:58:25 2007 +0000 +++ b/configure.ac Sun Jul 22 00:59:51 2007 +0000 @@ -2069,6 +2069,8 @@ pidgin/pixmaps/icons/Makefile pidgin/pixmaps/icons/16/Makefile pidgin/pixmaps/icons/16/scalable/Makefile + pidgin/pixmaps/icons/22/Makefile + pidgin/pixmaps/icons/22/scalable/Makefile pidgin/pixmaps/icons/24/Makefile pidgin/pixmaps/icons/24/scalable/Makefile pidgin/pixmaps/icons/32/Makefile diff -r c7a5cd17b045 -r 4efd240ffaa0 libpurple/Makefile.am --- a/libpurple/Makefile.am Sun Jul 22 00:58:25 2007 +0000 +++ b/libpurple/Makefile.am Sun Jul 22 00:59:51 2007 +0000 @@ -225,11 +225,11 @@ libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS) libpurple_la_LDFLAGS = -export-dynamic -version-info $(PURPLE_LT_VERSION_INFO) -no-undefined libpurple_la_LIBADD = \ + $(STATIC_LINK_LIBS) \ $(DBUS_LIBS) \ $(GLIB_LIBS) \ $(LIBXML_LIBS) \ $(LIBNM_LIBS) \ - $(STATIC_LINK_LIBS) \ $(INTLLIBS) \ -lm diff -r c7a5cd17b045 -r 4efd240ffaa0 libpurple/protocols/sametime/sametime.c --- a/libpurple/protocols/sametime/sametime.c Sun Jul 22 00:58:25 2007 +0000 +++ b/libpurple/protocols/sametime/sametime.c Sun Jul 22 00:59:51 2007 +0000 @@ -3189,7 +3189,8 @@ pd = gc->proto_data; ret = mwServiceAware_getText(pd->srvc_aware, &t); - return ret? g_markup_escape_text(ret, -1): NULL; + + return (ret && g_utf8_validate(ret, -1, NULL)) ? g_markup_escape_text(ret, -1): NULL; } @@ -3254,7 +3255,7 @@ message = mwServiceAware_getText(pd->srvc_aware, &idb); status = status_text(b); - if(message != NULL && purple_utf8_strcasecmp(status, message)) { + if(message != NULL && g_utf8_validate(message, -1, NULL) && purple_utf8_strcasecmp(status, message)) { tmp = g_markup_escape_text(message, -1); purple_notify_user_info_add_pair(user_info, status, tmp); g_free(tmp); @@ -4151,7 +4152,7 @@ /* XXX Is this adding a status message in its own section rather than with the "Status" label? */ tmp2 = mwServiceAware_getText(pd->srvc_aware, &idb); - if(tmp2) { + if(tmp2 && g_utf8_validate(tmp2, -1, NULL)) { tmp = g_markup_escape_text(tmp2, -1); purple_notify_user_info_add_section_break(user_info); purple_notify_user_info_add_pair(user_info, NULL, tmp); diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Sun Jul 22 00:58:25 2007 +0000 +++ b/pidgin/gtkconv.c Sun Jul 22 00:59:51 2007 +0000 @@ -83,9 +83,10 @@ }PidginConvFields; enum { - ICON_COLUMN, - TEXT_COLUMN, - NUM_COLUMNS + CONV_ICON_COLUMN, + CONV_TEXT_COLUMN, + CONV_EMBLEM_COLUMN, + CONV_NUM_COLUMNS } PidginInfopaneColumns; #define PIDGIN_CONV_ALL ((1 << 7) - 1) @@ -2335,8 +2336,10 @@ { PidginConversation *gtkconv; PidginWindow *win; + PurpleBuddy *b; GList *l; GdkPixbuf *status = NULL; + GdkPixbuf *emblem = NULL; g_return_if_fail(conv != NULL); @@ -2345,7 +2348,11 @@ if (conv != gtkconv->active_conv) return; + status = pidgin_conv_get_tab_icon(conv, TRUE); + b = purple_find_buddy(conv->account, conv->name); + if (b) + emblem = pidgin_blist_get_emblem((PurpleBlistNode*)b); g_return_if_fail(status != NULL); @@ -2354,7 +2361,12 @@ gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model), &(gtkconv->infopane_iter), - ICON_COLUMN, status, -1); + CONV_ICON_COLUMN, status, -1); + + gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model), + &(gtkconv->infopane_iter), + CONV_EMBLEM_COLUMN, emblem, -1); + if (status != NULL) g_object_unref(status); @@ -4412,7 +4424,7 @@ gtkconv->infopane = gtk_cell_view_new(); - gtkconv->infopane_model = gtk_list_store_new(NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING); + gtkconv->infopane_model = gtk_list_store_new(CONV_NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDK_TYPE_PIXBUF); gtk_cell_view_set_model(GTK_CELL_VIEW(gtkconv->infopane), GTK_TREE_MODEL(gtkconv->infopane_model)); gtk_list_store_append(gtkconv->infopane_model, &(gtkconv->infopane_iter)); @@ -4425,18 +4437,23 @@ rend = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkconv->infopane), rend, FALSE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "pixbuf", ICON_COLUMN, NULL); + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "pixbuf", CONV_ICON_COLUMN, NULL); g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); rend = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkconv->infopane), rend, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "markup", TEXT_COLUMN, NULL); + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "markup", CONV_TEXT_COLUMN, NULL); g_object_set(rend, "ypad", 0, "yalign", 0.5, NULL); #if GTK_CHECK_VERSION(2, 6, 0) g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL); #endif + rend = gtk_cell_renderer_pixbuf_new(); + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkconv->infopane), rend, FALSE); + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkconv->infopane), rend, "pixbuf", CONV_EMBLEM_COLUMN, NULL); + g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); + /* Setup the gtkimhtml widget */ frame = pidgin_create_imhtml(FALSE, >kconv->imhtml, NULL, &imhtml_sw); if (chat) { @@ -6199,7 +6216,7 @@ topic ? topic : ""); } gtk_list_store_set(gtkconv->infopane_model, &(gtkconv->infopane_iter), - TEXT_COLUMN, markup, -1); + CONV_TEXT_COLUMN, markup, -1); if (title != markup) g_free(markup); diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/pixmaps/icons/22/Makefile.am --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/icons/22/Makefile.am Sun Jul 22 00:59:51 2007 +0000 @@ -0,0 +1,8 @@ +SUBDIRS = scalable + +EXTRA_DIST = pidgin.png + +pidginiconspixdir = $(datadir)/icons/hicolor/24x24/apps + +pidginiconspix_DATA = $(EXTRA_DIST) + diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/pixmaps/icons/22/pidgin.png Binary file pidgin/pixmaps/icons/22/pidgin.png has changed diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/pixmaps/icons/22/scalable/Makefile.am --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/icons/22/scalable/Makefile.am Sun Jul 22 00:59:51 2007 +0000 @@ -0,0 +1,1 @@ +EXTRA_DIST = pidgin.svg diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/pixmaps/icons/22/scalable/pidgin.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/icons/22/scalable/pidgin.svg Sun Jul 22 00:59:51 2007 +0000 @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff -r c7a5cd17b045 -r 4efd240ffaa0 pidgin/plugins/gevolution/gevolution.c --- a/pidgin/plugins/gevolution/gevolution.c Sun Jul 22 00:58:25 2007 +0000 +++ b/pidgin/plugins/gevolution/gevolution.c Sun Jul 22 00:59:51 2007 +0000 @@ -227,11 +227,13 @@ if (app != NULL) { char *command_line = g_strdup_printf("%s mailto:%s", app, mail); + char *quoted = g_shell_quote(command_line); g_free(app); g_free(mail); - g_spawn_command_line_async(command_line, NULL); + g_spawn_command_line_async(quoted, NULL); g_free(command_line); + g_free(quoted); } else {