[empathy] don't recreate a video preview or update the window if we're about to destroy it
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] don't recreate a video preview or update the window if we're about to destroy it
- Date: Thu, 1 Apr 2010 08:17:33 +0000 (UTC)
commit cd6761777585a8defa934562abd4a35bc7e816e9
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Wed Mar 31 15:07:45 2010 +0200
don't recreate a video preview or update the window if we're about to destroy it
src/empathy-call-window.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 6a5038d..60210ca 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -1603,7 +1603,8 @@ empathy_call_window_reset_pipeline (EmpathyCallWindow *self)
}
static gboolean
-empathy_call_window_disconnected (EmpathyCallWindow *self)
+empathy_call_window_disconnected (EmpathyCallWindow *self,
+ gboolean restart)
{
gboolean could_disconnect = FALSE;
EmpathyCallWindowPriv *priv = GET_PRIV (self);
@@ -1629,6 +1630,11 @@ empathy_call_window_disconnected (EmpathyCallWindow *self)
g_mutex_unlock (priv->lock);
+ if (!restart)
+ /* We are about to destroy the window, no need to update it or create
+ * a video preview */
+ return TRUE;
+
empathy_call_window_status_message (self, _("Disconnected"));
gtk_action_set_sensitive (priv->redial, TRUE);
@@ -1683,7 +1689,8 @@ empathy_call_window_channel_closed_cb (EmpathyCallHandler *handler,
EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (user_data);
EmpathyCallWindowPriv *priv = GET_PRIV (self);
- if (empathy_call_window_disconnected (self) && priv->call_state == REDIALING)
+ if (empathy_call_window_disconnected (self, TRUE) &&
+ priv->call_state == REDIALING)
empathy_call_window_restart_call (self);
}
@@ -2438,7 +2445,7 @@ empathy_call_window_bus_message (GstBus *bus, GstMessage *message,
}
else
{
- empathy_call_window_disconnected (self);
+ empathy_call_window_disconnected (self, TRUE);
}
g_error_free (error);
g_free (debug);
@@ -2772,7 +2779,7 @@ empathy_call_window_hangup_cb (gpointer object,
empathy_call_handler_stop_call (priv->handler);
- if (empathy_call_window_disconnected (window))
+ if (empathy_call_window_disconnected (window, FALSE))
gtk_widget_destroy (GTK_WIDGET (window));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]