Blob Blame History Raw
diff -U0 ./ChangeLog.old ./ChangeLog
--- ./ChangeLog.old	2007-10-19 10:01:30.000000000 -0700
+++ ./ChangeLog	2007-10-19 10:02:29.000000000 -0700
@@ -0,0 +1,4 @@
+2007-10-19  Xavier Claessens  <xclaesse@gmail.com>
+	* libempathy-gtk/empathy-chat-window.c: If EmpathyChat object does not
+	exist when DnD a contact, create one. Fixes bug #483168.
+
diff -up ./libempathy-gtk/empathy-chat-window.c.old ./libempathy-gtk/empathy-chat-window.c
--- ./libempathy-gtk/empathy-chat-window.c.old	2007-10-19 10:02:50.000000000 -0700
+++ ./libempathy-gtk/empathy-chat-window.c	2007-10-19 10:04:48.000000000 -0700
@@ -1607,11 +1607,17 @@ chat_window_drag_data_received (GtkWidge
 		
 		account = empathy_contact_get_account (contact);
 		chat = empathy_chat_window_find_chat (account, id);
+		if (chat) {
+			g_object_ref (chat);
+		} else {
+			chat = EMPATHY_CHAT (empathy_private_chat_new_with_contact (contact));
+		}		
 		old_window = empathy_chat_get_window (chat);
 		
 		if (old_window) {
 			if (old_window == window) {
 				gtk_drag_finish (context, TRUE, FALSE, time);
+				g_object_unref(chat);
 				return;
 			}