static void ft_manager_response_cb (GtkWidget *widget, gint response, EmpathyFTManager *manager) { EmpathyFTManagerPriv *priv = GET_PRIV (manager); switch (response) { case RESPONSE_CLEAR: ft_manager_clear (manager); break; case RESPONSE_OPEN: ft_manager_open (manager); break; case RESPONSE_STOP: ft_manager_stop (manager); break; case RESPONSE_CLOSE: if (!close_window (manager)) gtk_widget_destroy (priv->window); break; case GTK_RESPONSE_NONE: case GTK_RESPONSE_DELETE_EVENT: /* Do nothing */ break; default: g_assert_not_reached (); } }
static void ft_manager_response_cb (GtkWidget *widget, gint response, EmpathyFTManager *manager) { switch (response) { case RESPONSE_CLEAR: ft_manager_clear (manager); break; case RESPONSE_OPEN: ft_manager_open (manager); break; case RESPONSE_STOP: ft_manager_stop (manager); break; } }
static gboolean close_window (EmpathyFTManager *manager) { EmpathyFTManagerPriv *priv = GET_PRIV (manager); DEBUG ("%p", manager); /* remove all the completed/cancelled/errored transfers */ ft_manager_clear (manager); if (g_hash_table_size (priv->ft_handler_to_row_ref) > 0) { /* There is still FTs on flight, just hide the window */ DEBUG ("Hiding window"); gtk_widget_hide (priv->window); return TRUE; } return FALSE; }