From 87bd645f1f0fe113374274d0ad44f35148eb37b5 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.net>
Date: Wed, 23 Sep 2009 15:59:44 -0400
Subject: [PATCH] [#2176] Fix detaching one participant while keeping
 communication to others

---
 sflphone-client-gnome/src/contacts/calltree.c | 6 ++++++
 sflphone-common/src/managerimpl.cpp           | 6 ++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index 15eda898e5..b9bd6869a6 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -1283,7 +1283,11 @@ static void drag_end_cb(GtkWidget * widget, GdkDragContext * context, gpointer d
 		sflphone_detach_participant(selected_call_id);
 
 		if(selected_call != NULL && dragged_conf != NULL)
+		{
+		    DEBUG("Adding a participant, since dragged call on a conference");
+	  
 		    sflphone_add_participant(selected_call_id, dragged_call_id);
+		}
 	    }
 	    else
 	    {
@@ -1395,6 +1399,7 @@ void drag_data_received_cb(GtkWidget *widget, GdkDragContext *context, gint x, g
 		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
 		dragged_call_id = "NULL";
 		dragged_call = NULL;
+		dragged_conf = NULL;
                 g_print("    AFTER dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
                 break;
 
@@ -1419,6 +1424,7 @@ void drag_data_received_cb(GtkWidget *widget, GdkDragContext *context, gint x, g
 		dragged_path_depth = gtk_tree_path_get_depth(drop_path);
 		dragged_call_id = "NULL";
 		dragged_call = NULL;
+		dragged_conf = NULL;
                 g_print("    BEFORE dragged_path %s, dragged_call_id %s, dragged_path_depth %i\n", dragged_path, dragged_call_id, dragged_path_depth);
                 break;
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index ed813c30ea..9f6e24540f 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -804,7 +804,7 @@ ManagerImpl::removeConference(const ConfID& conference_id)
 	return;
 
 
-    /*
+    
     // unbind main participant from conference
     _audiodriver->getMainBuffer()->unBindAll(default_id);
 
@@ -818,7 +818,7 @@ ManagerImpl::removeConference(const ConfID& conference_id)
 	// switchCall("");	
 	_audiodriver->getMainBuffer()->bindCallID(*iter_p, default_id);
     }
-    */
+    
 
     
 
@@ -1311,6 +1311,8 @@ void
 ManagerImpl::processRemainingParticipant(CallID current_call_id, Conference *conf)
 {
 
+    _debug("ManagerImpl::processRemainingParticipant()\n");
+
     if(conf->getNbParticipants() > 1)
     {
 
-- 
GitLab