2005-10-12 [colin] 1.9.15cvs31
authorColin Leroy <colin@colino.net>
Wed, 12 Oct 2005 17:22:33 +0000 (17:22 +0000)
committerColin Leroy <colin@colino.net>
Wed, 12 Oct 2005 17:22:33 +0000 (17:22 +0000)
* src/crash.c
Replace deprecated GtkText with GtkTextView
* src/imap.c
Fix a logic bug about counts in imap_select
(previously un-triggered)
* src/mainwindow.c
* src/summaryview.c
* src/news.c
Allow local deletion of news posts
* src/mimeview.c
Show GPG noticeview on the message/rfc822 part
in addition to the text/plain one
* src/prefs_image_viewer.c
  src/plugins/pgpcore/prefs_gpg.c
Polish (set the label as part of the checkbox)
* src/wizard.c
Don't sit there doing nothing after destroying
the window - return err

12 files changed:
ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/crash.c
src/imap.c
src/mainwindow.c
src/mimeview.c
src/news.c
src/plugins/pgpcore/prefs_gpg.c
src/prefs_image_viewer.c
src/summaryview.c
src/wizard.c

index 20f984257763e726ee1c499828c426b4f1a03809..7fa6a3af3703145f8233d1f695ed8f55245913ed 100644 (file)
@@ -1,3 +1,24 @@
+2005-10-12 [colin]     1.9.15cvs31
+
+       * src/crash.c
+               Replace deprecated GtkText with GtkTextView
+       * src/imap.c
+               Fix a logic bug about counts in imap_select
+               (previously un-triggered)
+       * src/mainwindow.c
+       * src/summaryview.c
+       * src/news.c
+               Allow local deletion of news posts
+       * src/mimeview.c
+               Show GPG noticeview on the message/rfc822 part
+               in addition to the text/plain one
+       * src/prefs_image_viewer.c
+         src/plugins/pgpcore/prefs_gpg.c
+               Polish (set the label as part of the checkbox)
+       * src/wizard.c
+               Don't sit there doing nothing after destroying
+               the window - return err
+
 2005-10-11 [colin]     1.9.15cvs30
 
        * src/folderview.c
index 5b8a364ff730cc79a60dc176a7ae5acccbd37e21..b944471d7eb960988218248543001f744c2f7cd4 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.115.2.57 -r 1.115.2.58 src/main.c;  cvs diff -u -r 1.274.2.71 -r 1.274.2.72 src/mainwindow.c;  cvs diff -u -r 1.16.2.27 -r 1.16.2.28 src/msgcache.c;  cvs diff -u -r 1.204.2.60 -r 1.204.2.61 src/prefs_common.c;  cvs diff -u -r 1.43.2.25 -r 1.43.2.26 src/prefs_matcher.c;  cvs diff -u -r 1.1.4.22 -r 1.1.4.23 src/etpan/imap-thread.c;  cvs diff -u -r 1.2.2.8 -r 1.2.2.9 src/gtk/colorlabel.c;  ) > 1.9.15cvs28.patchset
 ( cvs diff -u -r 1.382.2.181 -r 1.382.2.182 src/compose.c;  ) > 1.9.15cvs29.patchset
 ( cvs diff -u -r 1.207.2.70 -r 1.207.2.71 src/folderview.c;  cvs diff -u -r 1.179.2.76 -r 1.179.2.77 src/imap.c;  cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/imap_gtk.c;  ) > 1.9.15cvs30.patchset
+( cvs diff -u -r 1.23.2.13 -r 1.23.2.14 src/crash.c;  cvs diff -u -r 1.179.2.77 -r 1.179.2.78 src/imap.c;  cvs diff -u -r 1.274.2.72 -r 1.274.2.73 src/mainwindow.c;  cvs diff -u -r 1.83.2.40 -r 1.83.2.41 src/mimeview.c;  cvs diff -u -r 1.101.2.17 -r 1.101.2.18 src/news.c;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/prefs_image_viewer.c;  cvs diff -u -r 1.395.2.134 -r 1.395.2.135 src/summaryview.c;  cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/wizard.c;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/pgpcore/prefs_gpg.c;  ) > 1.9.15cvs31.patchset
index 12ccd14ca84deb31ec3d544cb322145bb1a97cdc..493899f1fffc0d30143c3784254019a86c9d6962 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=15
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=30
+EXTRA_VERSION=31
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 1646ace0e3b1478a5aaeb1f35fd1f187a686b7f0..fe2abf0858b2f399acc4ce84da56428b56d05999 100644 (file)
@@ -180,6 +180,8 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
        GtkWidget *button4;
        GtkWidget *button5;
        gchar     *crash_report;
+       GtkTextBuffer *buffer;
+       GtkTextIter iter;
 
        window1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_container_set_border_width(GTK_CONTAINER(window1), 5);
@@ -215,8 +217,8 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow1),
                                       GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 
-       text1 = gtk_text_new(NULL, NULL);
-       gtk_text_set_editable((text1), FALSE);
+       text1 = gtk_text_view_new();
+       gtk_text_view_set_editable(GTK_TEXT_VIEW(text1), FALSE);
        gtk_widget_show(text1);
        gtk_container_add(GTK_CONTAINER(scrolledwindow1), text1);
        
@@ -229,7 +231,9 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
                get_lib_version(),
                debug_output);
 
-       gtk_text_insert((text1), NULL, NULL, NULL, crash_report, -1);
+       buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text1));
+       gtk_text_buffer_get_start_iter(buffer, &iter);
+       gtk_text_buffer_insert(buffer, &iter, crash_report, -1);
 
        hbuttonbox3 = gtk_hbutton_box_new();
        gtk_widget_show(hbuttonbox3);
index f4323029742ddd97671e89bbc9c8cff43da670ec..8e15ae4543ae2468e038e658bf4271dbb8615612 100644 (file)
@@ -2221,14 +2221,18 @@ static gint imap_select(IMAPSession *session, IMAPFolder *folder,
        gint exists_, recent_, unseen_;
        guint32 uid_validity_;
        
-       if (!exists || !recent || !unseen || !uid_validity) {
+       if (!exists && !recent && !unseen && !uid_validity) {
                if (session->mbox && strcmp(session->mbox, path) == 0)
                        return IMAP_SUCCESS;
+       }
+       if (!exists)
                exists = &exists_;
+       if (!recent)
                recent = &recent_;
+       if (!unseen)
                unseen = &unseen_;
+       if (!uid_validity)
                uid_validity = &uid_validity_;
-       }
 
        g_free(session->mbox);
        session->mbox = NULL;
index 94a0af8427afa3ce75bd67ceb22f271e01cb236f..336ff6a57cbc6df1460304c1eb51ea9ee6afd69f 100644 (file)
@@ -1840,7 +1840,7 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
                {"/Message/Move..."               , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED},
                {"/Message/Copy..."               , M_TARGET_EXIST|M_EXEC|M_UNLOCKED},
                {"/Message/Move to trash"         , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
-               {"/Message/Delete..."             , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
+               {"/Message/Delete..."             , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED},
                {"/Message/Cancel a news message" , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NEWS},
                {"/Message/Mark"                  , M_TARGET_EXIST},
                {"/Message/Re-edit"               , M_HAVE_ACCOUNT|M_ALLOW_REEDIT},
index 2b404979731804271e937e5e2fcdc2efd218cfa0..1a89d44f4f681b0717f8c3e5698f3dc26340dcab 100644 (file)
@@ -700,10 +700,24 @@ static void display_full_info_cb(GtkWidget *widget, gpointer user_data)
 static void update_signature_info(MimeView *mimeview, MimeInfo *selected)
 {
        MimeInfo *siginfo;
-
+       MimeInfo *first_text;
+       
        g_return_if_fail(mimeview != NULL);
        g_return_if_fail(selected != NULL);
        
+       if (selected->type == MIMETYPE_MESSAGE 
+       &&  !g_ascii_strcasecmp(selected->subtype, "rfc822")) {
+               /* if the first text part is signed, check that */
+               first_text = selected;
+               while (first_text && first_text->type != MIMETYPE_TEXT) {
+                       first_text = procmime_mimeinfo_next(first_text);
+               }
+               if (first_text) {
+                       update_signature_info(mimeview, first_text);
+                       return;
+               }       
+       }
+
        siginfo = selected;
        while (siginfo != NULL) {
                if (privacy_mimeinfo_is_signed(siginfo))
index f6a102c732459d57c6d989bc45e16fb232220ef8..0160a4341dee0564c2d0f0a5564ccae6075be94f 100644 (file)
@@ -134,7 +134,9 @@ static gchar *news_folder_get_path   (Folder        *folder);
 gchar *news_item_get_path               (Folder        *folder,
                                          FolderItem    *item);
 static void news_synchronise            (FolderItem    *item);
-
+static int news_dummy_remove            (Folder        *folder, 
+                                         FolderItem    *item, 
+                                         gint           msgnum);
 static FolderClass news_class;
 
 FolderClass *news_get_class(void)
@@ -158,11 +160,20 @@ FolderClass *news_get_class(void)
                news_class.get_msginfos = news_get_msginfos;
                news_class.fetch_msg = news_fetch_msg;
                news_class.synchronise = news_synchronise;
+               news_class.remove_msg = news_dummy_remove;
        };
 
        return &news_class;
 }
 
+static int news_dummy_remove            (Folder        *folder, 
+                                         FolderItem    *item, 
+                                         gint           msgnum)
+{
+       debug_print("doing nothing on purpose\n");
+       return 0;
+}
+
 static Folder *news_folder_new(const gchar *name, const gchar *path)
 {
        Folder *folder;
index b3b4ada589d973cf45396e49acb1a7bd8658399c..212e51bfec599b8a5a7484084f7ef9ae213a820d 100644 (file)
@@ -58,6 +58,14 @@ struct GPGPage
         GtkWidget *checkbtn_gpg_warning;
 };
 
+static void store_passphrase_toggled(GtkWidget *widget, gpointer data)
+{
+       struct GPGPage *page = (struct GPGPage *)data;
+       gtk_widget_set_sensitive(page->spinbtn_store_passphrase,
+               gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_store_passphrase)));
+}
+
 static void prefs_gpg_create_widget_func(PrefsPage *_page,
                                         GtkWindow *window,
                                         gpointer data)
@@ -74,16 +82,13 @@ static void prefs_gpg_create_widget_func(PrefsPage *_page,
        GtkWidget *checkbtn_store_passphrase;
        GtkWidget *checkbtn_auto_check_signatures;
        GtkWidget *checkbtn_gpg_warning;
-       GtkWidget *label7;
-       GtkWidget *label6;
-       GtkWidget *label9;
-       GtkWidget *label10;
        GtkWidget *hbox1;
        GtkWidget *label11;
        GtkObject *spinbtn_store_passphrase_adj;
        GtkWidget *spinbtn_store_passphrase;
        GtkWidget *label12;
        GtkTooltips *tooltips;
+       gchar *tmp;
 
        tooltips = gtk_tooltips_new();
 
@@ -93,70 +98,42 @@ static void prefs_gpg_create_widget_func(PrefsPage *_page,
        gtk_table_set_row_spacings(GTK_TABLE(table), 4);
        gtk_table_set_col_spacings(GTK_TABLE(table), 8);
 
-       checkbtn_passphrase_grab = gtk_check_button_new_with_label("");
+       checkbtn_passphrase_grab = gtk_check_button_new_with_label(_("Grab input while entering a passphrase"));
        gtk_widget_show(checkbtn_passphrase_grab);
        gtk_table_attach(GTK_TABLE(table), checkbtn_passphrase_grab, 0, 1,
                         3, 4, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL),
                         (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 
-       checkbtn_store_passphrase = gtk_check_button_new_with_label("");
+       checkbtn_store_passphrase = gtk_check_button_new_with_label(_("Store passphrase in memory"));
        gtk_widget_show(checkbtn_store_passphrase);
        gtk_table_attach(GTK_TABLE(table), checkbtn_store_passphrase, 0, 1,
                         1, 2, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL),
                         (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 
        checkbtn_auto_check_signatures =
-           gtk_check_button_new_with_label("");
+           gtk_check_button_new_with_label(_("Automatically check signatures"));
        gtk_widget_show(checkbtn_auto_check_signatures);
        gtk_table_attach(GTK_TABLE(table), checkbtn_auto_check_signatures,
                         0, 1, 0, 1,
                         (GtkAttachOptions) (GTK_SHRINK | GTK_FILL),
                         (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 
-       checkbtn_gpg_warning = gtk_check_button_new_with_label("");
+       checkbtn_gpg_warning = gtk_check_button_new_with_label(_
+                         ("Display warning on startup if GnuPG doesn't work"));
        gtk_widget_show(checkbtn_gpg_warning);
        gtk_table_attach(GTK_TABLE(table), checkbtn_gpg_warning, 0, 1, 4,
                         5, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL),
                         (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 
-       label7 = gtk_label_new(_("Store passphrase in memory"));
-       gtk_widget_show(label7);
-       gtk_table_attach(GTK_TABLE(table), label7, 1, 2, 1, 2,
-                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                        (GtkAttachOptions) (GTK_SHRINK), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label7), 0, 0.5);
-
-       label6 = gtk_label_new(_("Automatically check signatures"));
-       gtk_widget_show(label6);
-       gtk_table_attach(GTK_TABLE(table), label6, 1, 2, 0, 1,
-                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                        (GtkAttachOptions) (GTK_SHRINK), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label6), 0, 0.5);
-
-       label9 =
-           gtk_label_new(_("Grab input while entering a passphrase"));
-       gtk_widget_show(label9);
-       gtk_table_attach(GTK_TABLE(table), label9, 1, 2, 3, 4,
-                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                        (GtkAttachOptions) (GTK_SHRINK), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label9), 0, 0.5);
-
-       label10 =
-           gtk_label_new(_
-                         ("Display warning on startup if GnuPG doesn't work"));
-       gtk_widget_show(label10);
-       gtk_table_attach(GTK_TABLE(table), label10, 1, 2, 4, 5,
-                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                        (GtkAttachOptions) (GTK_SHRINK), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label10), 0, 0.5);
-
        hbox1 = gtk_hbox_new(FALSE, 8);
        gtk_widget_show(hbox1);
-       gtk_table_attach(GTK_TABLE(table), hbox1, 1, 2, 2, 3,
+       gtk_table_attach(GTK_TABLE(table), hbox1, 0, 1, 2, 3,
                         (GtkAttachOptions) (GTK_SHRINK | GTK_FILL),
                         (GtkAttachOptions) (GTK_SHRINK), 0, 0);
 
-       label11 = gtk_label_new(_("Expire after"));
+       tmp = g_strdup_printf("        %s", _("Expire after"));
+       label11 = gtk_label_new(tmp);
+       g_free(tmp);
        gtk_widget_show(label11);
        gtk_box_pack_start(GTK_BOX(hbox1), label11, FALSE, FALSE, 0);
 
@@ -168,7 +145,7 @@ static void prefs_gpg_create_widget_func(PrefsPage *_page,
        gtk_widget_show(spinbtn_store_passphrase);
        gtk_box_pack_start(GTK_BOX(hbox1), spinbtn_store_passphrase, FALSE,
                           FALSE, 0);
-       gtk_widget_set_size_request(spinbtn_store_passphrase, 64, -2);
+       gtk_widget_set_size_request(spinbtn_store_passphrase, 64, -1);
        gtk_tooltips_set_tip(tooltips, spinbtn_store_passphrase,
                             _
                             ("Setting to '0' will store the passphrase for the whole session"),
@@ -192,6 +169,12 @@ static void prefs_gpg_create_widget_func(PrefsPage *_page,
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_passphrase_grab), config->passphrase_grab);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_gpg_warning), config->gpg_warning);
 
+       gtk_widget_set_sensitive(spinbtn_store_passphrase,
+               gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(checkbtn_store_passphrase)));
+       g_signal_connect(G_OBJECT(checkbtn_store_passphrase), "toggled", 
+                        G_CALLBACK(store_passphrase_toggled), page);
+
        page->checkbtn_auto_check_signatures = checkbtn_auto_check_signatures;
        page->checkbtn_store_passphrase = checkbtn_store_passphrase;
        page->spinbtn_store_passphrase = spinbtn_store_passphrase;
index e5dc60f64c2795254f5121e045c500f3a704f65e..f8f44c8f71f6e5033e172903cf354d982122dec1 100644 (file)
@@ -53,54 +53,31 @@ static void imageviewer_create_widget_func(PrefsPage * _page,
        ImageViewerPage *prefs_imageviewer = (ImageViewerPage *) _page;
 
        GtkWidget *table;
-       GtkWidget *label;
        GtkWidget *autoload_img;
        GtkWidget *resize_img;
        GtkWidget *inline_img;
 
-       table = gtk_table_new(2, 2, FALSE);
+       table = gtk_table_new(3, 1, FALSE);
        gtk_widget_show(table);
        gtk_container_set_border_width(GTK_CONTAINER(table), 8);
        gtk_table_set_row_spacings(GTK_TABLE(table), 4);
        gtk_table_set_col_spacings(GTK_TABLE(table), 8);
 
-       label =
-           gtk_label_new(_("Automatically display attached images"));
-       gtk_widget_show(label);
-       gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
-                        (GtkAttachOptions) (GTK_FILL),
-                        (GtkAttachOptions) (0), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-
-       label = gtk_label_new(_("Resize attached images by default\n(Clicking image toggles scaling)"));
-       gtk_widget_show(label);
-       gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
-                        (GtkAttachOptions) (GTK_FILL),
-                        (GtkAttachOptions) (0), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-
-       label = gtk_label_new(_("Display images inline"));
-       gtk_widget_show(label);
-       gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3,
-                        (GtkAttachOptions) (GTK_FILL),
-                        (GtkAttachOptions) (0), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-       
-       autoload_img = gtk_check_button_new_with_label("");
+       autoload_img = gtk_check_button_new_with_label(_("Automatically display attached images"));
        gtk_widget_show(autoload_img);
-       gtk_table_attach(GTK_TABLE(table), autoload_img, 1, 2, 0, 1,
+       gtk_table_attach(GTK_TABLE(table), autoload_img, 0, 1, 0, 1,
                         (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                         (GtkAttachOptions) (0), 0, 0);
 
-       resize_img = gtk_check_button_new_with_label("");
+       resize_img = gtk_check_button_new_with_label(_("Resize attached images by default\n(Clicking image toggles scaling)"));
        gtk_widget_show(resize_img);
-       gtk_table_attach(GTK_TABLE(table), resize_img, 1, 2, 1, 2,
+       gtk_table_attach(GTK_TABLE(table), resize_img, 0, 1, 1, 2,
                         (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                         (GtkAttachOptions) (0), 0, 0);
 
-       inline_img = gtk_check_button_new_with_label("");
+       inline_img = gtk_check_button_new_with_label(_("Display images inline"));
        gtk_widget_show(inline_img);
-       gtk_table_attach(GTK_TABLE(table), inline_img, 1, 2, 2, 3,
+       gtk_table_attach(GTK_TABLE(table), inline_img, 0, 1, 2, 3,
                         (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                         (GtkAttachOptions) (0), 0, 0);
        
index a32814630a474bbd583c61df0f1ad8120923165f..45e728e6481a54cffc14171cbe849aa47a8af2e1 100644 (file)
@@ -1225,7 +1225,7 @@ static void summary_set_menu_sensitive(SummaryView *summaryview)
                {"/Move..."                     , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
                {"/Copy..."                     , M_TARGET_EXIST|M_EXEC|M_UNLOCKED},
                {"/Move to trash"               , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
-               {"/Delete..."                   , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
+               {"/Delete..."                   , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED},
                {"/Cancel a news message"       , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NEWS},
 
                {"/Mark"                        , M_TARGET_EXIST},
@@ -3127,7 +3127,7 @@ static gboolean check_permission(SummaryView *summaryview, MsgInfo * msginfo)
                }
 
                if (!found) {
-                       alertpanel_error(_("You're not the author of the article\n"));
+                       alertpanel_error(_("You're not the author of the article.\n"));
                }
                
                return found;
@@ -3144,9 +3144,6 @@ static void summary_delete_row(SummaryView *summaryview, GtkCTreeNode *row)
 
        msginfo = gtk_ctree_node_get_row_data(ctree, row);
 
-       if (!check_permission(summaryview, msginfo))
-               return;
-
        if (MSG_IS_LOCKED(msginfo->flags)) return;
 
        if (MSG_IS_DELETED(msginfo->flags)) return;
@@ -3210,8 +3207,7 @@ void summary_delete(SummaryView *summaryview)
 
        if (summary_is_locked(summaryview)) return;
 
-       if (!summaryview->folder_item ||
-           FOLDER_TYPE(summaryview->folder_item->folder) == F_NEWS) return;
+       if (!summaryview->folder_item) return;
 
        aval = alertpanel(_("Delete message(s)"),
                          _("Do you really want to delete selected message(s)?"),
index da101a2d555cf926d90a42695461229340d199dd..8ed31f5718887d3bd223f883d7a609d6ed90ae0a 100644 (file)
@@ -534,8 +534,8 @@ wizard_response_cb (GtkDialog * dialog, int response, gpointer data)
                                GTK_NOTEBOOK(wizard->notebook));
        if (response == CANCEL)
        {
-               wizard->finished = TRUE;
                wizard->result = FALSE;
+               wizard->finished = TRUE;
                gtk_widget_destroy (GTK_WIDGET(dialog));
        }
        else if (response == FINISHED)
@@ -545,8 +545,8 @@ wizard_response_cb (GtkDialog * dialog, int response, gpointer data)
                                        GTK_NOTEBOOK(wizard->notebook));
                        goto set_sens;
                }
-               wizard->finished = TRUE;
                wizard->result = TRUE;
+               wizard->finished = TRUE;
                gtk_widget_destroy (GTK_WIDGET(dialog));
        }
        else
@@ -589,6 +589,13 @@ set_sens:
        }
 }
 
+static gint wizard_close_cb(GtkWidget *widget, GdkEventAny *event,
+                                gpointer data)
+{
+       WizardWindow *wizard = (WizardWindow *)data;
+       wizard->result = FALSE;
+       wizard->finished = TRUE;
+}
 
 gboolean run_wizard(MainWindow *mainwin, gboolean create_mailbox) {
        WizardWindow *wizard = g_new0(WizardWindow, 1);
@@ -701,7 +708,10 @@ gboolean run_wizard(MainWindow *mainwin, gboolean create_mailbox) {
                                          GTK_WIDGET(cur->data), NULL);
        }
        
+       g_signal_connect(G_OBJECT(wizard->window), "delete_event",
+                        G_CALLBACK(wizard_close_cb), wizard);
        gtk_widget_show_all (wizard->window);
+
        gtk_widget_hide(wizard->recv_imap_label);
        gtk_widget_hide(wizard->recv_imap_subdir);