# HG changeset patch # User Sadrul Habib Chowdhury # Date 1189060222 0 # Node ID b4572d639bb4c1421d85b749d786da04d20c8612 # Parent 6e9a16deb5b191928bde09a86d6ca83589596f46# Parent 15cb06e2d387222f7af1d270d1f7b3653e4f1461 merge of 'acf8d250c77786771f4fda3c7e69009acb30d4ed' and 'be9dba922e9f366e12da62fe2e2708b38d82b9c4' diff -r 6e9a16deb5b1 -r b4572d639bb4 libpurple/protocols/myspace/myspace.c --- a/libpurple/protocols/myspace/myspace.c Thu Sep 06 06:26:02 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.c Thu Sep 06 06:30:22 2007 +0000 @@ -1543,6 +1543,12 @@ if (msim_msg_get_integer(msg, "uniquenick") == session->userid) { purple_debug_info("msim_we_are_logged_on", "TODO: pick username\n"); + /* No username is set. */ + purple_notify_error(session->account, + _("No username set"), + _("Please go to http://editprofile.myspace.com/index.cfm?fuseaction=profile.username and choose a username and try to login again."), NULL); + purple_connection_error(session->gc, _("No username set")); + return FALSE; } body = msim_msg_new( @@ -1775,6 +1781,9 @@ purple_debug_info("msim", "msim_error (sesskey=%d): %s\n", session->sesskey, full_errmsg); + purple_notify_error(session->account, g_strdup(_("MySpaceIM Error")), + full_errmsg, NULL); + /* Destroy session if fatal. */ if (msim_msg_get(msg, "fatal")) { purple_debug_info("msim", "fatal error, closing\n"); @@ -1864,9 +1873,14 @@ purple_debug_info("msim", "msim_status: found buddy %s\n", username); } - /* The status headline is plaintext, but libpurple treats it as HTML, - * so escape any HTML characters to their entity equivalents. */ - status_headline_escaped = g_markup_escape_text(status_headline, strlen(status_headline)); + if (status_headline) { + /* The status headline is plaintext, but libpurple treats it as HTML, + * so escape any HTML characters to their entity equivalents. */ + status_headline_escaped = g_markup_escape_text(status_headline, strlen(status_headline)); + } else { + status_headline_escaped = NULL; + } + g_free(status_headline); if (user->headline) diff -r 6e9a16deb5b1 -r b4572d639bb4 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Thu Sep 06 06:26:02 2007 +0000 +++ b/pidgin/gtkconv.c Thu Sep 06 06:30:22 2007 +0000 @@ -4497,12 +4497,12 @@ pidgin_conv_motion_cb (GtkWidget *infopane, GdkEventMotion *event, PidginConversation *gtkconv) { int delay = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/tooltip_delay"); - + pidgin_blist_tooltip_destroy(); if (delay == 0) return FALSE; - if (tooltip.timeout != 0) + if (tooltip.timeout != 0) g_source_remove(tooltip.timeout); tooltip.timeout = g_timeout_add(delay, (GSourceFunc)pidgin_conv_tooltip_timeout, gtkconv); @@ -4516,7 +4516,6 @@ PurplePluginProtocolInfo *prpl_info; PurpleConversation *conv = gtkconv->active_conv; PidginChatPane *gtkchat; - PurpleConnection *gc; PurpleBlistNode *node = NULL; PurpleAccount *account; GtkTreePath *path; @@ -4528,8 +4527,11 @@ gtkchat = gtkconv->u.chat; account = purple_conversation_get_account(conv); - gc = account->gc; - prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if (account->gc == NULL) + return FALSE; + + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(account->gc->prpl); model = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list)); @@ -4543,7 +4545,7 @@ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &who, -1); node = (PurpleBlistNode*)(purple_find_buddy(conv->account, who)); - if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) + if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) pidgin_blist_draw_tooltip(node, gtkconv->infopane); g_free(who); @@ -4553,20 +4555,26 @@ return FALSE; } -static gboolean +static gboolean pidgin_userlist_motion_cb (GtkWidget *w, GdkEventMotion *event, PidginConversation *gtkconv) { PurpleConversation *conv; + PurpleAccount *account; int delay = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/tooltip_delay"); pidgin_blist_tooltip_destroy(); if (delay == 0) return FALSE; - if (tooltip.timeout != 0) + if (tooltip.timeout != 0) g_source_remove(tooltip.timeout); - + tooltip.timeout = 0; + conv = gtkconv->active_conv; + account = purple_conversation_get_account(conv); + + if (account->gc == NULL) + return FALSE; tooltip.timeout = g_timeout_add(delay, (GSourceFunc)pidgin_userlist_tooltip_timeout, gtkconv); tooltip.gtkconv = gtkconv; @@ -4606,7 +4614,7 @@ gtk_widget_show(gtkconv->infopane_hbox); gtk_widget_add_events(event_box, GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(event_box), "button_press_event", + g_signal_connect(G_OBJECT(event_box), "button-press-event", G_CALLBACK(infopane_press_cb), gtkconv); g_signal_connect(G_OBJECT(event_box), "motion-notify-event",