[ekiga] Call Window: Slightly delay call window hiding on disconnect.



commit fd30e2e38ea0b733b69ab24cc79474990da172b7
Author: Damien Sandras <dsandras beip be>
Date:   Sun Mar 4 16:41:23 2012 +0100

    Call Window: Slightly delay call window hiding on disconnect.
    
    This was disturbing.

 src/gui/main_window.cpp |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/src/gui/main_window.cpp b/src/gui/main_window.cpp
index 85b92f9..0ab6496 100644
--- a/src/gui/main_window.cpp
+++ b/src/gui/main_window.cpp
@@ -226,6 +226,7 @@ static void show_dialpad_cb (GtkWidget *widget,
 static void show_gm_window_cb (GtkWidget *widget,
                                gpointer data);
 
+static gboolean on_delayed_hide_call_window_cb (gpointer data);
 
 static void ekiga_main_window_incoming_call_dialog_show (EkigaMainWindow *mw,
                                                       boost::shared_ptr<Ekiga::Call>  call);
@@ -755,7 +756,7 @@ static void on_cleared_call_cb (boost::shared_ptr<Ekiga::CallManager>  /*manager
 
   /* Hide call window */
   call_window = GnomeMeeting::Process ()->GetCallWindow ();
-  gtk_widget_hide (call_window);
+  g_timeout_add_seconds (2, on_delayed_hide_call_window_cb, call_window);
 
   /* Sensitive a few things back */
   gtk_widget_set_sensitive (GTK_WIDGET (mw->priv->uri_toolbar), true);
@@ -788,7 +789,7 @@ static void on_cleared_incoming_call_cb (std::string /*reason*/,
 
   /* Hide call window */
   call_window = GnomeMeeting::Process ()->GetCallWindow ();
-  gtk_widget_hide (call_window);
+  g_timeout_add_seconds (2, on_delayed_hide_call_window_cb, call_window);
 
   /* Sensitive a few things back */
   gtk_widget_set_sensitive (GTK_WIDGET (mw->priv->uri_toolbar), true);
@@ -1047,6 +1048,17 @@ gnomemeeting_tray_hack_cb (G_GNUC_UNUSED gpointer data)
   return FALSE;
 }
 
+static gboolean
+on_delayed_hide_call_window_cb (gpointer data)
+{
+  g_return_val_if_fail (data != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_WIDGET (data), FALSE);
+
+  gtk_widget_hide (GTK_WIDGET (data));
+
+  return FALSE;
+}
+
 static void
 on_history_selection_changed (G_GNUC_UNUSED GtkWidget* view,
 			      gpointer self)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]