diff src/protocols/oscar/oscar.c @ 3044:e68e2ba82310

[gaim-migrate @ 3057] DirectIM Image sending. Not all the kinks are worked out, and it's really hackish at parts, but it works and I think it's stable. It's late and I have to be up early tommorow, and I want this to be somewhat tested before 0.54 is released so we don't have a repeat of 0.53 ;) Also, Luke Schierer wins the #gaim MVP award with an inclusion in CREDITS :) Thanks, Luke. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 14 Mar 2002 07:44:43 +0000
parents 0f1766887ddd
children e729c064bc1b
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Thu Mar 14 03:29:03 2002 +0000
+++ b/src/protocols/oscar/oscar.c	Thu Mar 14 07:44:43 2002 +0000
@@ -2436,7 +2436,11 @@
 			else return ret;
 		}
 		debug_printf("Direct IM pending, but not connected; sending through server\n");
-		}
+	} else if (len != -1) {
+		/* Trying to send an IM image outside of a direct connection. */
+		oscar_ask_direct_im(gc, name);
+		return -ENOTCONN;
+	}
 	if (imflags & IM_FLAG_AWAY) {
 		ret = aim_send_im(odata->sess, name, AIM_IMFLAGS_AWAY, message);
 	} else {
@@ -3168,6 +3172,9 @@
 	if (!(dim = find_direct_im(od, sn)))
 		return 1;
 	gaim_input_remove(dim->watcher);   /* Otherwise, the callback will callback */
+	while (gtk_events_pending())
+		gtk_main_iteration();
+	
 	if ((c = find_conversation(sn)))
 		update_progress(c, percent);
 	dim->watcher = gaim_input_add(dim->conn->fd, GAIM_INPUT_READ,
@@ -3554,7 +3561,7 @@
 
 void oscar_init(struct prpl *ret) {
 	ret->protocol = PROTO_OSCAR;
-	ret->options = OPT_PROTO_BUDDY_ICON;
+	ret->options = OPT_PROTO_BUDDY_ICON | OPT_PROTO_IM_IMAGE;
 	ret->name = oscar_name;
 	ret->list_icon = oscar_list_icon;
 	ret->away_states = oscar_away_states;