[balsa/gtk3] Provide a parent window for send-progress dialog



commit 28fc72b1e0b79d3580d67ea69e442b422efd3e90
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Mon Mar 2 17:38:37 2015 -0500

    Provide a parent window for send-progress dialog
    
        * libbalsa/send.c (ensure_send_progress_dialog),
        (libbalsa_message_send), (lbs_process_queue),
        (libbalsa_process_queue): new parameter GtkWindow *parent.
        * libbalsa/send.h: ditto.
        * src/balsa-message.c: use it.
        * src/balsa-mime-widget-message.c (extbody_send_mail): ditto.
        * src/balsa-mime-widget-vcalendar.c (vevent_reply): ditto.
        * src/main-window.c (send_queued_mail_activated): ditto.
        * src/sendmsg-window.c (send_message_handler): ditto.

 ChangeLog                         |   14 ++++++++++++++
 libbalsa/send.c                   |   24 ++++++++++++++----------
 libbalsa/send.h                   |    8 ++++++--
 src/balsa-message.c               |   15 +++++++++++----
 src/balsa-mime-widget-message.c   |    2 ++
 src/balsa-mime-widget-vcalendar.c |    4 ++++
 src/main-window.c                 |    1 +
 src/sendmsg-window.c              |    2 ++
 8 files changed, 54 insertions(+), 16 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 6b0dd74..b6b6402 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2015-03-02  Peter Bloomfield  <pbloomfield bellsouth net>
+
+       Provide a parent window for the send-progress dialog
+
+       * libbalsa/send.c (ensure_send_progress_dialog),
+       (libbalsa_message_send), (lbs_process_queue),
+       (libbalsa_process_queue): new parameter GtkWindow *parent.
+       * libbalsa/send.h: ditto.
+       * src/balsa-message.c: use it.
+       * src/balsa-mime-widget-message.c (extbody_send_mail): ditto.
+       * src/balsa-mime-widget-vcalendar.c (vevent_reply): ditto.
+       * src/main-window.c (send_queued_mail_activated): ditto.
+       * src/sendmsg-window.c (send_message_handler): ditto.
+
 2015-03-01  Peter Bloomfield  <pbloomfield bellsouth net>
 
        Fix alignment of text/rfc822-headers parts widget
diff --git a/libbalsa/send.c b/libbalsa/send.c
index b7e3460..48e6c24 100644
--- a/libbalsa/send.c
+++ b/libbalsa/send.c
@@ -245,7 +245,7 @@ send_dialog_destroy_cb(GtkWidget* w)
    ensures that there is send_dialog available.
 */
 static void
-ensure_send_progress_dialog()
+ensure_send_progress_dialog(GtkWindow * parent)
 {
     GtkWidget* label;
     GtkBox *content_box;
@@ -253,7 +253,7 @@ ensure_send_progress_dialog()
     if(send_dialog) return;
 
     send_dialog = gtk_dialog_new_with_buttons(_("Sending Mail..."), 
-                                              NULL,
+                                              parent,
                                               GTK_DIALOG_DESTROY_WITH_PARENT,
                                               _("_Hide"), GTK_RESPONSE_CLOSE,
                                               NULL);
@@ -283,7 +283,7 @@ ensure_send_progress_dialog()
 #define send_unlock() pthread_mutex_unlock(&send_messages_lock);
 
 #else
-#define ensure_send_progress_dialog()
+#define ensure_send_progress_dialog(parent)
 #define send_lock()   
 #define send_unlock() 
 #endif
@@ -529,13 +529,15 @@ libbalsa_message_queue(LibBalsaMessage * message, LibBalsaMailbox * outbox,
 static gboolean lbs_process_queue(LibBalsaMailbox * outbox,
                                   LibBalsaFccboxFinder finder,
                                   LibBalsaSmtpServer * smtp_server,
-                                  gboolean debug);
+                                  gboolean debug,
+                                  GtkWindow * parent);
 
 LibBalsaMsgCreateResult
 libbalsa_message_send(LibBalsaMessage * message, LibBalsaMailbox * outbox,
                       LibBalsaMailbox * fccbox,
                       LibBalsaFccboxFinder finder,
                       LibBalsaSmtpServer * smtp_server,
+                      GtkWindow * parent,
                       gboolean flow, gboolean debug,
                      GError ** error)
 {
@@ -549,7 +551,7 @@ libbalsa_message_send(LibBalsaMessage * message, LibBalsaMailbox * outbox,
                                         smtp_server, flow, error);
 
     if (result == LIBBALSA_MESSAGE_CREATE_OK
-        && !lbs_process_queue(outbox, finder, smtp_server, debug))
+        && !lbs_process_queue(outbox, finder, smtp_server, debug, parent))
             return LIBBALSA_MESSAGE_SEND_ERROR;
 
     return result;
@@ -646,7 +648,8 @@ add_recipients(smtp_message_t message,
  */
 static gboolean
 lbs_process_queue(LibBalsaMailbox * outbox, LibBalsaFccboxFinder finder,
-                 LibBalsaSmtpServer * smtp_server, gboolean debug)
+                 LibBalsaSmtpServer * smtp_server, gboolean debug,
+                  GtkWindow * parent)
 {
     LibBalsaServer *server = LIBBALSA_SERVER(smtp_server);
     MessageQueueItem *new_message;
@@ -670,7 +673,7 @@ lbs_process_queue(LibBalsaMailbox * outbox, LibBalsaFccboxFinder finder,
        return TRUE;
     }
     /* We create here the progress bar */
-    ensure_send_progress_dialog();
+    ensure_send_progress_dialog(parent);
 
     /* Create the libESMTP session.  Loop over the out box and add the
        messages to the session. */
@@ -948,12 +951,13 @@ gboolean
 libbalsa_process_queue(LibBalsaMailbox * outbox,
                        LibBalsaFccboxFinder finder,
                        GSList * smtp_servers,
+                       GtkWindow * parent,
                       gboolean debug)
 {
     for (; smtp_servers; smtp_servers = smtp_servers->next) {
         LibBalsaSmtpServer *smtp_server =
                LIBBALSA_SMTP_SERVER(smtp_servers->data);
-        if (!lbs_process_queue(outbox, finder, smtp_server, debug))
+        if (!lbs_process_queue(outbox, finder, smtp_server, debug, parent))
             return FALSE;
     }
 
@@ -1254,7 +1258,7 @@ libbalsa_smtp_event_cb_serial(smtp_session_t session, int event_no,
 */
 gboolean 
 libbalsa_process_queue(LibBalsaMailbox* outbox, LibBalsaFccboxFinder finder,
-                       gboolean debug)
+                       gboolean debug, GtkWindow * parent)
 {
     MessageQueueItem *mqi = NULL, *new_message;
     SendMessageInfo *send_message_info;
@@ -1273,7 +1277,7 @@ libbalsa_process_queue(LibBalsaMailbox* outbox, LibBalsaFccboxFinder finder,
     sending_threads++;
 #endif
 
-    ensure_send_progress_dialog();
+    ensure_send_progress_dialog(parent);
     if (!libbalsa_mailbox_open(outbox, NULL)) {
 #ifdef BALSA_USE_THREADS
        sending_threads--;
diff --git a/libbalsa/send.h b/libbalsa/send.h
index b45b171..00cc5b2 100644
--- a/libbalsa/send.h
+++ b/libbalsa/send.h
@@ -67,12 +67,16 @@ LibBalsaMsgCreateResult libbalsa_message_send(LibBalsaMessage * message,
                                               LibBalsaMailbox * fccbox,
                                               LibBalsaFccboxFinder finder,
                                               LibBalsaSmtpServer *
-                                              smtp_server, gboolean flow,
+                                              smtp_server,
+                                              GtkWindow * parent,
+                                              gboolean flow,
                                               gboolean debug,
                                              GError ** error);
 gboolean libbalsa_process_queue(LibBalsaMailbox * outbox,
                                 LibBalsaFccboxFinder finder,
-                                GSList * smtp_servers, gboolean debug);
+                                GSList * smtp_servers,
+                                GtkWindow * parent,
+                                gboolean debug);
 #else
 
 LibBalsaMsgCreateResult libbalsa_message_queue(LibBalsaMessage* message, 
diff --git a/src/balsa-message.c b/src/balsa-message.c
index 892c516..9b6177e 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -2512,10 +2512,12 @@ handle_mdn_request(GtkWindow *parent, LibBalsaMessage *message)
         result = libbalsa_message_send(mdn, balsa_app.outbox, NULL,
                                       balsa_find_sentbox_by_url,
                                       mdn_ident->smtp_server,
+                                       parent,
                                       TRUE, balsa_app.debug, &error);
 #else
         result = libbalsa_message_send(mdn, balsa_app.outbox, NULL,
                                       balsa_find_sentbox_by_url,
+                                       parent,
                                       TRUE, balsa_app.debug, &error);
 #endif
        if (result != LIBBALSA_MESSAGE_CREATE_OK)
@@ -2653,13 +2655,18 @@ mdn_dialog_response(GtkWidget * dialog, gint response, gpointer user_data)
 
     if (response == GTK_RESPONSE_YES) {
 #if ENABLE_ESMTP
-        result = libbalsa_message_send(send_msg, balsa_app.outbox, NULL,
-                                      balsa_find_sentbox_by_url,
-                                      mdn_ident->smtp_server,
-                                      TRUE, balsa_app.debug, &error);
+        result =
+            libbalsa_message_send(send_msg, balsa_app.outbox, NULL,
+                                  balsa_find_sentbox_by_url,
+                                  mdn_ident->smtp_server,
+                                  gtk_window_get_transient_for
+                                  ((GtkWindow *) dialog),
+                                  TRUE, balsa_app.debug, &error);
 #else
         result = libbalsa_message_send(send_msg, balsa_app.outbox, NULL,
                                       balsa_find_sentbox_by_url,
+                                       gtk_window_get_transient_for
+                                       ((GtkWindow *) dialog),
                                       TRUE, balsa_app.debug, &error);
 #endif
         if (result != LIBBALSA_MESSAGE_CREATE_OK)
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index 8d0420e..aad12a4 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -363,6 +363,8 @@ extbody_send_mail(GtkWidget * button, LibBalsaMessageBody * mime_body)
     result = libbalsa_message_send(message, balsa_app.outbox, NULL,
                                   balsa_find_sentbox_by_url,
                                   balsa_app.current_ident->smtp_server,
+                                   GTK_WINDOW(gtk_widget_get_toplevel
+                                              (button)),
                                   FALSE, balsa_app.debug, &err);
 #else
     result = libbalsa_message_send(message, balsa_app.outbox, NULL,
diff --git a/src/balsa-mime-widget-vcalendar.c b/src/balsa-mime-widget-vcalendar.c
index 32c3fae..b27d8b3 100644
--- a/src/balsa-mime-widget-vcalendar.c
+++ b/src/balsa-mime-widget-vcalendar.c
@@ -328,10 +328,14 @@ vevent_reply(GObject * button, GtkWidget * box)
     result = libbalsa_message_send(message, balsa_app.outbox, NULL,
                                   balsa_find_sentbox_by_url,
                                   ident->smtp_server,
+                                   GTK_WINDOW(gtk_widget_get_toplevel
+                                              ((GtkWidget *) button)),
                                   FALSE, balsa_app.debug, &error);
 #else
     result = libbalsa_message_send(message, balsa_app.outbox, NULL,
                                   balsa_find_sentbox_by_url,
+                                   GTK_WINDOW(gtk_widget_get_toplevel
+                                              ((GtkWidget *) button)),
                                   FALSE, balsa_app.debug, &error);
 #endif
     if (result != LIBBALSA_MESSAGE_CREATE_OK)
diff --git a/src/main-window.c b/src/main-window.c
index 80bd5fb..15e569f 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -1085,6 +1085,7 @@ send_queued_mail_activated(GSimpleAction * action,
 #if ENABLE_ESMTP
                            balsa_app.smtp_servers,
 #endif /* ENABLE_ESMTP */
+                           (GtkWindow *) balsa_app.main_window,
                           balsa_app.debug);
 }
 
diff --git a/src/sendmsg-window.c b/src/sendmsg-window.c
index 5f46be6..881235a 100644
--- a/src/sendmsg-window.c
+++ b/src/sendmsg-window.c
@@ -5319,6 +5319,7 @@ send_message_handler(BalsaSendmsg * bsmsg, gboolean queue_only)
         result = libbalsa_message_send(message, balsa_app.outbox, fcc,
                                        balsa_find_sentbox_by_url,
                                       bsmsg->ident->smtp_server,
+                                       GTK_WINDOW(bsmsg->window),
                                        bsmsg->flow, balsa_app.debug, &error);
 #else
     if(queue_only)
@@ -5327,6 +5328,7 @@ send_message_handler(BalsaSendmsg * bsmsg, gboolean queue_only)
     else
         result = libbalsa_message_send(message, balsa_app.outbox, fcc,
                                        balsa_find_sentbox_by_url,
+                                       GTK_WINDOW(bsmsg->window),
                                       bsmsg->flow, balsa_app.debug, &error);
 #endif
     if (result == LIBBALSA_MESSAGE_CREATE_OK) {


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