[Commits] [SCM] claws branch, gtk3, updated. 3.16.0-796-g9907462a4

paul at claws-mail.org paul at claws-mail.org
Tue Nov 19 09:55:49 CET 2019


The branch, gtk3 has been updated
       via  9907462a49c70bb9bcadacd7af873bd1158cd8b8 (commit)
       via  9f121cf7bd35a47b0fe654b7ced8aae08dc4dd6b (commit)
       via  36288b41d090f86c807a4dd3d227c7bdf33fba09 (commit)
       via  92656a5d3c4299134f9a2a78a69a54feb4e6dd3e (commit)
       via  c8f1554af01ae10162a0bec205483197689fd2d0 (commit)
       via  842c1235f3a3f119244b4e7e95fbd1f001e62663 (commit)
       via  51d29b9466f9f930090d54b1d1cb4732eddb8bdc (commit)
       via  86888549aa9649f38c05a77a975e46d10d0d5819 (commit)
       via  b31dc550bec0583c40817321fabd1d8637ffe8fa (commit)
       via  a54609531617b4b188fd505254858aaaecec2f3a (commit)
       via  045264bfc246f33a7790cd87125c3a2876698fe3 (commit)
       via  b3ae2518300138611f8d7908169785140d4da7a6 (commit)
       via  b515861b7cfacd653f1994c58e92536d1e3525a0 (commit)
       via  33d61c77455ab5ccca3e641312a9ef21f8f718e8 (commit)
      from  b003028a9064c08dbd9852c507fa145ee0b85353 (commit)

Summary of changes:
 AUTHORS                                   |   2 +
 m4/spamassassin.m4                        |   5 +-
 src/addrduplicates.c                      |   1 +
 src/addressadd.c                          |   1 +
 src/addressbook.c                         |   1 +
 src/addressbook_foldersel.c               |   1 +
 src/addrgather.c                          |   1 +
 src/compose.c                             |   7 ++-
 src/crash.c                               |   1 +
 src/editaddress.c                         |   1 +
 src/editbook.c                            |   1 +
 src/editgroup.c                           |   1 +
 src/editldap.c                            |   1 +
 src/editldap_basedn.c                     |   1 +
 src/edittags.c                            |   1 +
 src/editvcard.c                           |   1 +
 src/exphtmldlg.c                          |   1 +
 src/expldifdlg.c                          |   1 +
 src/export.c                              |   1 +
 src/foldersel.c                           |   1 +
 src/folderview.c                          |  20 +++---
 src/gtk/about.c                           |   1 +
 src/gtk/authors.h                         |   2 +
 src/gtk/description_window.c              |   1 +
 src/gtk/foldersort.c                      |   1 +
 src/gtk/icon_legend.c                     |   1 +
 src/gtk/logwindow.c                       |   1 +
 src/gtk/pluginwindow.c                    |   1 +
 src/gtk/prefswindow.c                     |   1 +
 src/import.c                              |   1 +
 src/importldif.c                          |   1 +
 src/importmutt.c                          |   1 +
 src/importpine.c                          |   1 +
 src/message_search.c                      |   1 +
 src/messageview.c                         |   1 +
 src/plugins/att_remover/att_remover.c     |   1 +
 src/plugins/managesieve/sieve_manager.c   |   1 +
 src/plugins/pgpcore/passphrase.c          |   1 +
 src/plugins/pgpcore/select-keys.c         |   1 +
 src/plugins/rssyl/rssyl.c                 |   4 ++
 src/prefs_account.c                       |  25 +-------
 src/prefs_actions.c                       |   1 +
 src/prefs_customheader.c                  |   1 +
 src/prefs_display_header.c                |   1 +
 src/prefs_filtering.c                     |   1 +
 src/prefs_filtering_action.c              |   1 +
 src/prefs_folder_column.c                 |   1 +
 src/prefs_matcher.c                       |   1 +
 src/prefs_other.c                         |   1 +
 src/prefs_summaries.c                     |   1 +
 src/prefs_summary_column.c                |   1 +
 src/prefs_summary_open.c                  |   1 +
 src/prefs_template.c                      |   1 +
 src/prefs_toolbar.c                       |   1 +
 src/printing.c                            |   1 +
 src/procheader.c                          |   8 +++
 src/sourcewindow.c                        |   2 +
 src/ssl_manager.c                         |   1 +
 src/summary_search.c                      |   1 +
 src/summaryview.c                         |  81 +++++++++++-------------
 src/uri_opener.c                          |   1 +
 tools/Makefile.am                         |   3 +-
 tools/OOo2claws-mail.pl                   |  32 ----------
 tools/README                              | 100 ++++++++++--------------------
 tools/{google_search.pl => ddg_search.pl} |  21 ++++---
 tools/fix_date.sh                         |  71 ++++++++++++---------
 tools/multiwebsearch.conf                 |   3 +-
 67 files changed, 212 insertions(+), 225 deletions(-)
 delete mode 100755 tools/OOo2claws-mail.pl
 rename tools/{google_search.pl => ddg_search.pl} (69%)


- Log -----------------------------------------------------------------
commit 9907462a49c70bb9bcadacd7af873bd1158cd8b8
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 13:20:10 2019 +0100

    fix warning ‘%s’ directive output may be truncated writing up to 8191 bytes into a region of size 8187

diff --git a/src/summaryview.c b/src/summaryview.c
index 9faa46c9f..5bedb9c23 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -3546,7 +3546,7 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
 				to_text = to_text ? to_text : _("(No From)");
 			}
 		}
-		snprintf(tmp2, BUFFSIZE-1, "➜ %s", to_text);
+		snprintf(tmp2, BUFFSIZE+4, "➜ %s", to_text);
 		tmp2[BUFFSIZE-1]='\0';
 		text[col_pos[S_COL_FROM]] = tmp2;
 	}

commit 9f121cf7bd35a47b0fe654b7ced8aae08dc4dd6b
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 13:01:38 2019 +0100

    complete commit 61889fd9465da61b0db28d75860a91745b7a51d5
    
    thanks Brian!

diff --git a/tools/Makefile.am b/tools/Makefile.am
index d6c9d211f..d474e3189 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -4,20 +4,19 @@
 # See COPYING file for license details.
 
 EXTRA_TOOLS = \
-	OOo2claws-mail.pl \
 	acroread2claws-mail.pl \
 	calypso_convert.pl \
 	claws-mail-compose-insert-files.pl \
 	cm-reparent.pl \
 	convert_mbox.pl \
 	csv2addressbook.pl \
+	ddg_search.pl \
 	eud2gc.py \
 	filter_conv.pl \
 	filter_conv_new.pl \
 	fix_date.sh \
 	gif2xface.pl \
 	google_msgid.pl \
-	google_search.pl \
 	kmail2claws-mail.pl \
 	kmail2claws-mail_v2.pl \
 	kmail-mailbox2claws-mail.pl \
diff --git a/tools/README b/tools/README
index 74d33a1bf..f89e398cc 100644
--- a/tools/README
+++ b/tools/README
@@ -41,7 +41,6 @@ Other tools:
   mairix.sh                     A wrapper to mairix, to enable global searches in
                                 mail folders
   nautilus2claws-mail.sh        Send files from Nautilus
-  OOo2claws-mail.pl             Send documents from OpenOffice.org
   popfile-link.sh               Open messages in POPFile control center to edit
                                 their status
   sylprint.pl                   Printing engine, explained in README.sylprint
@@ -128,13 +127,13 @@ Action scripts
 	
 	Configure an Action:
 	a) pre-configured website 
-	   Command: multiwebsearch.pl --where="google" --what="%s"
+	   Command: multiwebsearch.pl --where="ddg" --what="%s"
 	b) dynamic
 	   Command: multiwebsearch.pl --where="%u" --what="%s"
 	   
-	In type a) "google" refers to one of the configured aliases,
+	In type a) "ddg" refers to one of the configured aliases,
 	this Action will always search the website referred to by
-	the alias "google".
+	the alias "ddg".
 	
 	In type b) you will be presented with a dialog box into
 	which you type one of your configured aliases
@@ -653,44 +652,6 @@ Other tools
   Contact: Reza Pakdel <hrpakdel at cpsc.ucalgary.ca>
 
 
-* OOo2claws-mail.pl
-
-  WHAT IT DOES
-  	This perl script enables OpenOffice.org to send documents to
-	Claws Mail as attachments.
-
-  HOW TO USE IT
-    OpenOffice.org Version 2.0
-    ----------------------------
-	This script is not needed for OOo version 2, which can work
-	directly with Claws Mail.
-	Go to 'Tools/Options/Internet/E-mail' and enter 'claws-mail'
-	in the box.
-
-    OpenOffice.org Version 1.1.0
-    ----------------------------
-  	Start up OpenOffice.org.
-  	Go to 'Tools/Options/OpenOffice.org/External Programs'
-	Select either ''Mozilla 1.x (Option 1)', or 
-	'Netscape 6.x - 7.0 (Option 1)' from the 'Program' selection
-  	Enter the path to OOo2claws-mail.pl in the 'Path' box
-  	or select it by clicking on the '...' button.
-    
-  	You can then use 'File/Send/Document as email' to launch
-	claws-mail (if not already launched) and open a new compose
-	window with the document attached.
-
-    OpenOffice.org Version 1.0
-    --------------------------
-  	Start up OpenOffice.org.
-  	Go to 'Tools/Options/OpenOffice.org/External Programs'
-  	Enter the path to OOo2claws-mail.pl in the 'Program' box
-  	or select it by clicking on the '...' button.
-
-
-  Contact: Paul Mangan <paul at claws-mail.org>
-
-
 * popfile-link.sh
 
  WHAT IT DOES

commit 36288b41d090f86c807a4dd3d227c7bdf33fba09
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 12:56:00 2019 +0100

    respect 'default selection' settings when moving a msg with manual filtering

diff --git a/src/summaryview.c b/src/summaryview.c
index 47027b66d..9faa46c9f 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -1497,52 +1497,43 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
 
 	g_slist_free(mlist);
 
-	if (is_refresh) {
-		if (!quicksearch_is_in_typing(summaryview->quicksearch)) {
-			summaryview->displayed =
-				summary_find_msg_by_msgnum(summaryview,
-							   displayed_msgnum);
-			if (!summaryview->displayed)
-				messageview_clear(summaryview->messageview);
+	if (quicksearch_is_in_typing(summaryview->quicksearch) ||
+	    quicksearch_is_running(summaryview->quicksearch)) {
+		summaryview->displayed =
+			summary_find_msg_by_msgnum(summaryview,
+						   displayed_msgnum);
+		if (!summaryview->displayed)
+			messageview_clear(summaryview->messageview);
+		summary_unlock(summaryview);
+
+		if (quicksearch_is_running(summaryview->quicksearch))
+			summary_select_by_msgnum(summaryview, selected_msgnum,
+					OPEN_SELECTED_ON_SEARCH_RESULTS);
+		else
+			summary_select_by_msgnum(summaryview, selected_msgnum,
+					FALSE);
+
+		summary_lock(summaryview);
+		if (!summaryview->selected) {
+			/* no selected message - select first unread
+			   message, but do not display it */
+			node = summary_find_next_flagged_msg(summaryview, NULL,
+							     MSG_UNREAD, FALSE);
+			if (node == NULL && GTK_CMCLIST(ctree)->row_list != NULL)
+				node = gtk_cmctree_node_nth
+					(ctree,
+					 item->sort_type == SORT_DESCENDING
+					 ? 0 : GTK_CMCLIST(ctree)->rows - 1);
 			summary_unlock(summaryview);
 
 			if (quicksearch_is_running(summaryview->quicksearch))
-				summary_select_by_msgnum(summaryview, selected_msgnum,
+				summary_select_node(summaryview, node,
 						OPEN_SELECTED_ON_SEARCH_RESULTS);
 			else
-				summary_select_by_msgnum(summaryview, selected_msgnum,
-						FALSE);
+				summary_select_node(summaryview, node,
+						OPEN_SELECTED_ON_FOLDER_OPEN);
 
 			summary_lock(summaryview);
-			if (!summaryview->selected) {
-				/* no selected message - select first unread
-				   message, but do not display it */
-				node = summary_find_next_flagged_msg(summaryview, NULL,
-								     MSG_UNREAD, FALSE);
-				if (node == NULL && GTK_CMCLIST(ctree)->row_list != NULL)
-					node = gtk_cmctree_node_nth
-						(ctree,
-						 item->sort_type == SORT_DESCENDING
-						 ? 0 : GTK_CMCLIST(ctree)->rows - 1);
-				summary_unlock(summaryview);
-
-				if (quicksearch_is_running(summaryview->quicksearch))
-					summary_select_node(summaryview, node,
-							OPEN_SELECTED_ON_SEARCH_RESULTS);
-				else
-					summary_select_node(summaryview, node,
-							OPEN_SELECTED_ON_FOLDER_OPEN);
-
-				summary_lock(summaryview);
-			}
-		} else {
-			/* just select first/last */
-			if (GTK_CMCLIST(ctree)->row_list != NULL)
-				node = gtk_cmctree_node_nth
-					(ctree,
-					 item->sort_type == SORT_DESCENDING
-					 ? 0 : GTK_CMCLIST(ctree)->rows - 1);
-			summary_select_node(summaryview, node, OPEN_SELECTED_ON_SEARCH_RESULTS);
 		}
 	} else {
 		/* backward compat */
@@ -1648,12 +1639,10 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
 
 		if (node) {
 			gint open_selected = -1;
-			if (!is_refresh) {
-				if (OPEN_SELECTED_ON_FOLDER_OPEN)
-					open_selected = 1;
-				else
-					open_selected = 0;
-			}
+			if (OPEN_SELECTED_ON_FOLDER_OPEN)
+				open_selected = 1;
+			else
+				open_selected = 0;
 			summary_select_node(summaryview, node, open_selected);
 		}
 

commit 92656a5d3c4299134f9a2a78a69a54feb4e6dd3e
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 10:44:12 2019 +0100

    remove 'fm'; replace 'google' with 'ddg'

diff --git a/tools/multiwebsearch.conf b/tools/multiwebsearch.conf
index 3611e9484..f960533ac 100644
--- a/tools/multiwebsearch.conf
+++ b/tools/multiwebsearch.conf
@@ -1,6 +1,5 @@
 cpan|http://search.cpan.org/search?mode=module&query=
-fm|http://freshmeat.net/search?q=
-google|http://www.google.com/search?q=
+ddg|https://duckduckgo.com/?q=
 rfc|http://www.ietf.org/rfc/rfc|.txt
 sf|http://sourceforge.net/search/?type_of_search=soft&words=
 usenet|http://groups.google.com/groups?q=|&meta=site%3Dgroups

commit c8f1554af01ae10162a0bec205483197689fd2d0
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 10:34:51 2019 +0100

    some clean up in tools/
    
    * remove out-dated OOo2claws-mail.pl
    * replace google_search.pl with ddg_search.pl (DuckDuckGo instead of
      Google)
    * update README

diff --git a/tools/OOo2claws-mail.pl b/tools/OOo2claws-mail.pl
deleted file mode 100755
index 84249cd0d..000000000
--- a/tools/OOo2claws-mail.pl
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/perl
-
-#  * Copyright 2002 Paul Mangan <paul at claws-mail.org>
-#  *
-#  * This file is free software; you can redistribute it and/or modify it
-#  * under the terms of the GNU General Public License as published by
-#  * the Free Software Foundation; either version 3 of the License, or
-#  * (at your option) any later version.
-#  *
-#  * This program is distributed in the hope that it will be useful, but
-#  * WITHOUT ANY WARRANTY; without even the implied warranty of
-#  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  * General Public License for more details.
-#  *
-#  * You should have received a copy of the GNU General Public License
-#  * along with this program; if not, write to the Free Software
-#  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# OOo2claws-mail.pl	helper script to send documents from OpenOffice.org
-#			to Claws Mail
-
-use strict;
-
-my $input = <>;
-
-$ARGV =~ s/^"attachment='file:\/\///;
-$ARGV =~ s/'"$//;
-$ARGV =~ s/%20/ /g;
-exec "claws-mail --attach \"$ARGV\"";
-## change the line above to point to your claws-mail executable
-
-exit;
diff --git a/tools/README b/tools/README
index 2c7802c03..74d33a1bf 100644
--- a/tools/README
+++ b/tools/README
@@ -6,9 +6,8 @@ Contents of the tools directory:
 Action scripts:
   cm-reparent.pl                Fix thread parenting for two or more messages
   cm-break.pl                   Remove thread parenting for one or more messages
-  freshmeat_search.pl           Search freshmeat.net for selected text
+  ddg_search.pl                 Search DuckDuckGo for selected text
   google_msgid.pl               Search groups.google.com for selected message-id
-  google_search.pl              Search google.com for selected text
   multiwebsearch.pl             Search any search engine for the selected text
   textviewer.sh                 Attempt to view an attachment as plain text
   uudec                         Decode and display uuencoded images
@@ -71,17 +70,17 @@ Action scripts
   COMMAND: cm-break.pl %F
   Break thread references for the selected messages
 
+* ddg_search.pl
+  WORKS ON: selection
+  COMMAND: |ddg_search.pl
+  Search duckduckgo.com for selected text using the default Claws Mail browser
+
 * google_msgid.pl
   WORKS ON: selection
   COMMAND: |google_msgid.pl
   Lookup selected message-id in google using mozilla. Edit the script to use
   different browsers.
 
-* google_search.pl
-  WORKS ON: selection
-  COMMAND: |google_search.pl
-  Search google.com for selected text using the default Claws Mail browser
-
 * multiwebsearch.pl
   WORKS ON: selection
   see further down for details
diff --git a/tools/google_search.pl b/tools/ddg_search.pl
similarity index 69%
rename from tools/google_search.pl
rename to tools/ddg_search.pl
index fc0c92f16..b7d5f58fd 100755
--- a/tools/google_search.pl
+++ b/tools/ddg_search.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-#  * Copyright 2003-2007 Paul Mangan <paul at claws-mail.org>
+#  * Copyright 2003-2019 Paul Mangan <paul at claws-mail.org>
 #  *
 #  * This file is free software; you can redistribute it and/or modify it
 #  * under the terms of the GNU General Public License as published by
@@ -24,9 +24,10 @@
 
 use URI::Escape;
 use POSIX qw(locale_h);
+use locale;
 use Text::Iconv;
 
-my $google = "http://www.google.com/search?q";
+my $ddg = "https://duckduckgo.com/?q";
 $_ = <>;
 
 $locale = setlocale(LC_CTYPE);
@@ -35,17 +36,23 @@ $locale =~ s/\S+\.//;
 $converter = Text::Iconv->new("$locale", "UTF-8");
 $safe=uri_escape($converter->convert("$_"));
 
-chdir($ENV{HOME} . "/.claws-mail") || die("Can't find your .claws-mail directory\n");
+my $config_dir = `claws-mail --config-dir` or die("ERROR:
+	You don't appear to have Claws Mail installed\n");
+chomp $config_dir;
 
-open (SYLRC, "<clawsrc") || die("Can't open the clawsrc file\n");
-	@rclines = <SYLRC>;
-close SYLRC;
+chdir($ENV{HOME} . "/$config_dir") or die("ERROR:
+	Claws Mail config directory not found [~/$config_dir]
+	You need to run Claws Mail once, quit it, and then rerun this script\n");
+
+open (CMRC, "<clawsrc") || die("Can't open the clawsrc file\n");
+	@rclines = <CMRC>;
+close CMRC;
 
 foreach $rcline (@rclines) {
 	if ($rcline =~ m/^uri_open_command/) {
 		chomp $rcline;
 		@browser = split(/=/, $rcline);
-		$browser[1] =~ s/%s/$google=$safe/;
+		$browser[1] =~ s/%s/$ddg=$safe/;
 	}
 }
 system("$browser[1]&");

commit 842c1235f3a3f119244b4e7e95fbd1f001e62663
Author: Paul <paul at claws-mail.org>
Date:   Tue Sep 24 10:04:04 2019 +0100

    when creating a new account, don't pre-fill data from the default account

diff --git a/src/prefs_account.c b/src/prefs_account.c
index 84b0978fd..75ac7a05c 100644
--- a/src/prefs_account.c
+++ b/src/prefs_account.c
@@ -460,7 +460,7 @@ static PrefParam basic_param[] = {
 	 &basic_page.nntpauth_onconnect_checkbtn,
 	 prefs_set_data_from_toggle, prefs_set_toggle},
 
-	{"user_id", "ENV_USER", &tmp_ac_prefs.userid, P_STRING,
+	{"user_id", NULL, &tmp_ac_prefs.userid, P_STRING,
 	 &basic_page.uid_entry, prefs_set_data_from_entry, prefs_set_entry},
 
 	{"password", NULL, &tmp_ac_prefs.passwd, P_PASSWORD,
@@ -1446,33 +1446,10 @@ static void basic_create_widget_func(PrefsPage * _page,
 	page->auto_configure_lbl = auto_configure_lbl;
 
 	if (new_account) {
-		PrefsAccount *def_ac;
-
 		prefs_set_dialog_to_default(basic_param);
 		buf = g_strdup_printf(_("Account%d"), ac_prefs->account_id);
 		gtk_entry_set_text(GTK_ENTRY(basic_page.acname_entry), buf);
 		g_free(buf);
-		def_ac = account_get_default();
-		if (def_ac) {
-			FolderItem *item = folder_get_default_inbox_for_class(F_MH);
-			gtk_entry_set_text(GTK_ENTRY(basic_page.name_entry),
-					   def_ac->name ? def_ac->name : "");
-			gtk_entry_set_text(GTK_ENTRY(basic_page.addr_entry),
-					   def_ac->address ? def_ac->address : "");
-			gtk_entry_set_text(GTK_ENTRY(basic_page.org_entry),
-					   def_ac->organization ? def_ac->organization : "");
-			if (!item) {
-				item = folder_get_default_inbox();
-			}
-			if (item) {
-				gchar *id = folder_item_get_identifier(item);
-				gtk_entry_set_text(GTK_ENTRY(receive_page.inbox_entry),
-					id);
-				gtk_entry_set_text(GTK_ENTRY(receive_page.local_inbox_entry),
-					id);
-				g_free(id);
-			}
-		}
 	} else {
 		prefs_set_dialog(basic_param);
 

commit 51d29b9466f9f930090d54b1d1cb4732eddb8bdc
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Sep 20 10:40:56 2019 +0200

    Restore previous format of README entry

diff --git a/tools/README b/tools/README
index c6310b550..2c7802c03 100644
--- a/tools/README
+++ b/tools/README
@@ -594,31 +594,33 @@ Other tools
 
 * fix_date.sh
 
-  Add a 'Date:' header to the selected email(s) when such header is
-  missing.  The correct date is guessed from other headers that
-  contain timestamp information (preferred: Fetchinfo header if found)
-  or from the file or system date as a fallback. The order or
-  preference for the date value replacement can be changed by editing
-  the script.
-
-  This script can be used to fix messages that show non RFC-compliant
-  Date headers as well.
-
-  X-Original-Date is always added too if not already existing (if so,
-  it's left untouched), to keep track of the original value if any.
-
-  An existing Date: header is not overwritten unless you use the
-  --force switch.
+  WHAT IT DOES
+	Add a 'Date:' header to the selected email(s) when such header
+	is missing.  The correct date is guessed from other headers
+	that contain timestamp information (preferred: Fetchinfo
+	header if found) or from the file or system date as a
+	fallback. The order or preference for the date value
+	replacement can be changed by editing the script.
+	This script can be used to fix messages that show non
+	RFC-compliant Date headers as well.
+	X-Original-Date is always added too if not already existing
+	(if so, it's left untouched), to keep track of the original
+	value if any.
+	An existing Date: header is not overwritten unless you use the
+	--force switch.
+	Non RFC-compliant dates can be overwritten using the --rfc
+	switch. Use --strict to use strict RFC matching patterns for
+	date values in other headers.
 
-  Non RFC-compliant dates can be overwritten using the --rfc switch.
-  Use --strict to use strict RFC matching patterns for date values in
-  other headers.
+  HOW TO USE IT
+	First you have to create an action with the following command:
 
-  WORKS ON: selected message(s)
+	fix_date.sh %F
 
-  COMMAND: fix_date.sh %F
+	On main window's message list, select the messages to be fixed
+	and invoke the created action.
 
-  CONTACT: wwp <wwp at claws-mail.org>
+  Contact: wwp <wwp at claws-mail.org>
 
 * mairix.sh
 

commit 86888549aa9649f38c05a77a975e46d10d0d5819
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Sep 20 09:31:16 2019 +0200

    Update script and doc from web's tools dir

diff --git a/tools/README b/tools/README
index 5383def05..c6310b550 100644
--- a/tools/README
+++ b/tools/README
@@ -592,29 +592,33 @@ Other tools
   Contact: Paul Mangan <paul at claws-mail.org>
   
 
-* fix-date.sh
+* fix_date.sh
 
- WHAT IT DOES
-	Add a 'Date:' header to the selected email(s) when such header is 
-	missing. The correct date is guessed from other headers that contain 
-	timestamp information (preferred: Fetchinfo header if found) or from 
-	the file or system date as a fallback. The order or preference for the
-	date valuereplacement can be changed by editing the script.
-	This script can be used to fix messages that show non RFC-compliant
-	Date headers as well.
-	X-Original-Date is always added too if not already existing (if so,
-	it's left untouched), to keep track of the original value if any.
-	An existing Date: header is not overwritten unless you use the --force
-	switch.
-	Non RFC-compliant dates can be overwritten using the --rfc switch. Use
-	--strict to use strict RFC matching patterns for date values in other
-	headers.
-	
-  HOW TO USE IT
-	fix_date.sh %F
+  Add a 'Date:' header to the selected email(s) when such header is
+  missing.  The correct date is guessed from other headers that
+  contain timestamp information (preferred: Fetchinfo header if found)
+  or from the file or system date as a fallback. The order or
+  preference for the date value replacement can be changed by editing
+  the script.
 
-  Contact: wwp <wwp at claws-mail.org>
+  This script can be used to fix messages that show non RFC-compliant
+  Date headers as well.
+
+  X-Original-Date is always added too if not already existing (if so,
+  it's left untouched), to keep track of the original value if any.
+
+  An existing Date: header is not overwritten unless you use the
+  --force switch.
+
+  Non RFC-compliant dates can be overwritten using the --rfc switch.
+  Use --strict to use strict RFC matching patterns for date values in
+  other headers.
+
+  WORKS ON: selected message(s)
+
+  COMMAND: fix_date.sh %F
 
+  CONTACT: wwp <wwp at claws-mail.org>
 
 * mairix.sh
 
diff --git a/tools/fix_date.sh b/tools/fix_date.sh
index 2c2344d64..1cb8f37aa 100755
--- a/tools/fix_date.sh
+++ b/tools/fix_date.sh
@@ -19,7 +19,7 @@
 # fix_date.sh		helper script to fix non-standard date or add missing
 #					date header to emails
 
-# usage: fix_date.sh <filename> [<filename>..]
+# usage: fix_date.sh <filename> [<filename> ..]
 # It will replace the Date: value w/ the one picked up from more recent
 # Fetchinfo time header, Received: field.. Otherwise, it will take the file
 #  modification time (using a RFC 2822-compliant form).
@@ -28,7 +28,7 @@
 
 # TODO: fallback to X-OriginalArrivalTime: ?
 
-VERSION="0.1.2"
+VERSION="0.1.3"
 
 
 version()
@@ -42,13 +42,13 @@ usage()
 	echo "usage:"
 	echo "  ${0##*/} [<switches>] <filename> [<filename> ..]"
 	echo "switches:"
-	echo "  --help     display this help then exit"
-	echo "  --version  display version information then exit"
-	echo "  --force    always force (re-)writing of Date: header"
-	echo "  --rfc      force re-writing of Date: header when it's not RFC-compliant"
-	echo "  --debug    turn on debug information (be more verbose)"
-	echo "  --strict   use RFC-strict matching patterns for dates"
-	echo "  --         end of switches (in case a filename starts with a -)"
+	echo "  -h --help     display this help then exit"
+	echo "  -v --version  display version information then exit"
+	echo "  -d --debug    turn on debug information (be more verbose)"
+	echo "  -f --force    always force (re-)writing of Date: header"
+	echo "  -r --rfc      force re-writing of Date: header when it's not RFC-compliant"
+	echo "  -s --strict   use RFC-strict matching patterns for dates"
+	echo "  --            end of switches (in case a filename starts with a -)"
 	exit $1
 }
 
@@ -69,6 +69,7 @@ dump_date_fields()
 	echo "Date:$REPLACEMENT_DATE" >> "$TMP"
 }
 
+
 # use --force to always (re-)write the Date header
 # otherwise, the Date header will be written if only it doesn't exist
 FORCE=0
@@ -81,21 +82,23 @@ DEBUG=0
 STRICT=0
 # 0 = valid, always valid until --strict is used, then date_valid overrides this value
 DATE_VALID=0
+# max header lines (300 is a reasonable minimum value but 600 has already been encountered, set to 1000 by security)
+MAX_HEADER_LINES=1000
 
 while [ -n "$1" ]
 do
 	case "$1" in
-	--help)		usage 0;;
-	--version)	version;;
-	--force)	FORCE=1;;
-	--debug)	DEBUG=1;;
-	--rfc)		RFC=1;;
-	--strict)	STRICT=1;;
-	--)			shift
-				break;;
-	-*)			echo "error: unrecognized switch '$1'"
-				usage 1;;
-	*)			break;;
+	-h|--help)		usage 0;;
+	-v|--version)	version;;
+	-f|--force)		FORCE=1;;
+	-d|--debug)		DEBUG=1;;
+	-r|--rfc)		RFC=1;;
+	-s|--strict)	STRICT=1;;
+	--)				shift
+					break;;
+	-*)				echo "error: unrecognized switch '$1'"
+					usage 1;;
+	*)				break;;
 	esac
 	shift
 done
@@ -109,30 +112,38 @@ fi
 test $# -lt 1 && \
 	usage 1
 
-TMP="/tmp/${0##*/}.tmp"
-HEADERS="/tmp/${0##*/}.headers.tmp"
-BODY="/tmp/${0##*/}.body.tmp"
+TMP="/tmp/${0##*/}.$$.tmp"
+HEADERS="/tmp/${0##*/}.$$.headers.tmp"
+BODY="/tmp/${0##*/}.$$.body.tmp"
 
-DATE_REGEXP='( (Mon|Tue|Wed|Thu|Fri|Sat|Sun),)? [0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]+ [0-9]+:[0-9]+:[0-9]+ [-+]?[0-9]+'
-DATE_REGEXP_STRICT='(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]+ [0-9]+:[0-9]+:[0-9]+ [-+]?[0-9]+'
+DATE_REGEXP='( (Mon|Tue|Wed|Thu|Fri|Sat|Sun),)? [0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]+ [0-9]+:[0-9]+:[0-9]+ [+-]?[0-9]+'
+DATE_REGEXP_STRICT='(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]+ [0-9]+:[0-9]+:[0-9]+ [+-]?[0-9]+'
 
 while [ -n "$1" ]
 do
 	# skip if file is empty or doesn't exist
 	if [ ! -s "$1" ]
 	then
+		test $DEBUG -eq 1 && \
+			echo "$1: no found or empty, skipping"
 		shift
 		continue
 	fi
 	SKIP=0
 
 	# split headers and body
-	# get the empty line (separation between headers and body)
-	SEP=`grep -nEm1 "^$" "$1" 2>/dev/null | cut -d ':' -f 1`
-	if [ -z "$SEP" -o "$SEP" = "0" ]
+	# find the empty line that separates body (if any) from headers,
+	# work on a temporary dos2unix'ed copy because body might
+	# contain DOS CRLF and grep '^$' won't work
+	head -$MAX_HEADER_LINES "$1" | dos2unix > "$TMP"
+	SEP=`grep -nEm1 "^$" "$TMP" 2>/dev/null | cut -d ':' -f 1`
+	rm -f "$TMP"
+	if [ -z "$SEP" -o "$SEP" = "0" -o $? -ne 0 ]
 	then
 		cp -f "$1" "$HEADERS"
 		:> "$BODY"
+		test $DEBUG -eq 1 && \
+			echo "$1: no body part could be found before line $MAX_HEADER_LINES"
 	else
 		sed -n '1,'`expr $SEP - 1`'p' "$1" > "$HEADERS"
 		sed '1,'`expr $SEP - 1`'d' "$1" > "$BODY"
@@ -150,7 +161,7 @@ do
 	test -n "$DATE" && \
 		sed -i '/^Date:/,/^[^\t]/d' "$HEADERS"
 
-	# found a replacement date in Fetchinfo headers
+	# find a replacement date in Fetchinfo: header
 	FETCH_DATE=`grep -im1 'X-FETCH-TIME: ' "$HEADERS" | cut -d ' ' -f 2-`
 	
 	# or in Received: headers ..
@@ -159,7 +170,7 @@ do
 		REGEXP="$DATE_REGEXP_STRICT"
 	RECEIVED_DATE=`sed -n '/^Received:/,/^[^\t]/p' "$HEADERS" | head -n -1 | grep -Eoim 1 "$REGEXP"`
 
-	# .. or from FS
+	# .. or from file properties
 	FILE_DATE=`LC_ALL=POSIX LANG=POSIX ls -l --time-style="+%a, %d %b %Y %X %z" "$1" | tr -s ' ' | cut -d ' ' -f 6-11`
 	# we could also use the system date as a possible replacement
 	SYSTEM_DATE="`date -R`"

commit b31dc550bec0583c40817321fabd1d8637ffe8fa
Author: Paul <paul at claws-mail.org>
Date:   Thu Sep 19 12:52:18 2019 +0100

    add patch RFE 4244, 'Handle additional Date header formats'
    
    patch by Alexander Lyons Harkness <me at bearbin.net>

diff --git a/AUTHORS b/AUTHORS
index e31ea46f1..e530d7519 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -327,3 +327,4 @@ contributors (in addition to the above; based on Changelog)
 	Avinash Sonawane
 	Alex Smith
 	Florian Weimer
+	Alexander Lyons Harkness
diff --git a/src/gtk/authors.h b/src/gtk/authors.h
index 2ad414945..310d9fdf4 100644
--- a/src/gtk/authors.h
+++ b/src/gtk/authors.h
@@ -160,6 +160,7 @@ static char *CONTRIBS_LIST[] = {
 "Oliver Haertel",
 "Anders Hammar",
 "Mitko Haralanov",
+"Alexander Lyons Harkness",
 "Hashimoto",
 "Jacob Head",
 "Federico Heinz",
diff --git a/src/procheader.c b/src/procheader.c
index d384db00e..f5755b6a3 100644
--- a/src/procheader.c
+++ b/src/procheader.c
@@ -938,6 +938,10 @@ static gint procheader_scan_date_string(const gchar *str,
 			weekday, day, month, year, hh, mm, ss, zone);
 	if (result == 8) return 0;
 
+	result = sscanf(str, "%3s %3s %d %2d:%2d:%2d %d %6s",
+			weekday, month, day, hh, mm, ss, year, zone);
+	if (result == 8) return 0;
+
 	result = sscanf(str, "%d %9s %d %2d:%2d:%2d %6s",
 			day, month, year, hh, mm, ss, zone);
 	if (result == 7) return 0;
@@ -947,6 +951,10 @@ static gint procheader_scan_date_string(const gchar *str,
 			weekday, day, month, year, hh, mm, ss);
 	if (result == 7) return 0;
 
+	result = sscanf(str, "%3s %3s %d %2d:%2d:%2d %d",
+			weekday, month, day, hh, mm, ss, year);
+	if (result == 7) return 0;
+
 	result = sscanf(str, "%d %9s %d %2d:%2d:%2d",
 			day, month, year, hh, mm, ss);
 	if (result == 6) return 0;

commit a54609531617b4b188fd505254858aaaecec2f3a
Author: Paul <paul at claws-mail.org>
Date:   Thu Sep 19 11:50:26 2019 +0100

    fix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)
    
    ... and so on

diff --git a/src/addrduplicates.c b/src/addrduplicates.c
index 89f9af44a..7ca28fa84 100644
--- a/src/addrduplicates.c
+++ b/src/addrduplicates.c
@@ -335,6 +335,7 @@ static void present_finder_results(GtkWindow *parent)
 	                 (GCallback)detail_selection_changed, NULL);
 
 	dialog = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "address_dupes_finder");
+	gtk_window_set_type_hint(GTK_WINDOW(dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_transient_for(GTK_WINDOW(dialog),parent);
 	gtk_window_set_modal(GTK_WINDOW(dialog),TRUE);
 	if(!geometry.min_height) {
diff --git a/src/addressadd.c b/src/addressadd.c
index f0f8a4c1a..5049fa956 100644
--- a/src/addressadd.c
+++ b/src/addressadd.c
@@ -190,6 +190,7 @@ static void addressadd_create( void ) {
 	gtk_container_set_border_width( GTK_CONTAINER(window), VBOX_BORDER );
 	gtk_window_set_title( GTK_WINDOW(window), _("Add to address book") );
 	gtk_window_set_position( GTK_WINDOW(window), GTK_WIN_POS_MOUSE );
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect( G_OBJECT(window), "delete_event",
 			  G_CALLBACK(addressadd_delete_event), NULL );
 	g_signal_connect( G_OBJECT(window), "key_press_event",
diff --git a/src/addressbook.c b/src/addressbook.c
index 14dee50e8..b4586934b 100644
--- a/src/addressbook.c
+++ b/src/addressbook.c
@@ -919,6 +919,7 @@ static void addressbook_create(void)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "addressbook");
 	gtk_window_set_title(GTK_WINDOW(window), _("Address book"));
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_realize(window);
 
 	g_signal_connect(G_OBJECT(window), "delete_event",
diff --git a/src/addressbook_foldersel.c b/src/addressbook_foldersel.c
index 14ca696b1..cb8cc54f8 100644
--- a/src/addressbook_foldersel.c
+++ b/src/addressbook_foldersel.c
@@ -157,6 +157,7 @@ static void addressbook_foldersel_create( void )
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title( GTK_WINDOW(window), _("Select Address Book Folder") );
 	gtk_window_set_position( GTK_WINDOW(window), GTK_WIN_POS_MOUSE );
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect( G_OBJECT(window), "delete_event",
 			  G_CALLBACK(addressbook_foldersel_delete_event), NULL );
 	g_signal_connect( G_OBJECT(window), "key_press_event",
diff --git a/src/addrgather.c b/src/addrgather.c
index b8c8054a6..9a43c8cc5 100644
--- a/src/addrgather.c
+++ b/src/addrgather.c
@@ -527,6 +527,7 @@ static void addrgather_dlg_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 4);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(addrgather_dlg_delete_event), NULL);
diff --git a/src/compose.c b/src/compose.c
index e03bd1fcc..f070ead29 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -7773,9 +7773,9 @@ static Compose *compose_create(PrefsAccount *account,
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "compose");
 
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
-	gtk_window_set_default_size(GTK_WINDOW(window),
-			prefs_common.compose_width,
-			prefs_common.compose_height);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
+	gtk_widget_set_size_request(window, prefs_common.compose_width,
+					prefs_common.compose_height);
 
 	if (!geometry.max_width) {
 		geometry.max_width = gdk_screen_width();
@@ -9460,6 +9460,7 @@ static void compose_attach_property_create(gboolean *cancelled)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_window_set_title(GTK_WINDOW(window), _("Properties"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(attach_property_delete_event),
 			 cancelled);
diff --git a/src/crash.c b/src/crash.c
index 3634ee95f..17b12d126 100644
--- a/src/crash.c
+++ b/src/crash.c
@@ -185,6 +185,7 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
 	gtk_container_set_border_width(GTK_CONTAINER(window1), 5);
 	gtk_window_set_title(GTK_WINDOW(window1), _("Claws Mail has crashed"));
 	gtk_window_set_position(GTK_WINDOW(window1), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window1), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_modal(GTK_WINDOW(window1), TRUE);
 	gtk_window_set_default_size(GTK_WINDOW(window1), 460, 272);
 
diff --git a/src/editaddress.c b/src/editaddress.c
index c41ce818e..08e881463 100644
--- a/src/editaddress.c
+++ b/src/editaddress.c
@@ -851,6 +851,7 @@ static void addressbook_edit_person_dialog_create( gboolean *cancelled ) {
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit Person Data"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_modal(GTK_WINDOW(window), FALSE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_person_delete_event),
 			 cancelled);
diff --git a/src/editbook.c b/src/editbook.c
index 844d0ee88..fc7535ecc 100644
--- a/src/editbook.c
+++ b/src/editbook.c
@@ -147,6 +147,7 @@ static void addressbook_edit_book_create( gboolean *cancelled ) {
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit Addressbook"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_book_delete_event),
 			 cancelled);
diff --git a/src/editgroup.c b/src/editgroup.c
index f864d5078..305278596 100644
--- a/src/editgroup.c
+++ b/src/editgroup.c
@@ -294,6 +294,7 @@ static void addressbook_edit_group_create( gboolean *cancelled ) {
 	gtk_container_set_border_width(GTK_CONTAINER(window), 0);
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit Group Data"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_group_delete_event),
 			 cancelled);
diff --git a/src/editldap.c b/src/editldap.c
index cd73e9f50..4e025315c 100644
--- a/src/editldap.c
+++ b/src/editldap.c
@@ -334,6 +334,7 @@ static void addressbook_edit_ldap_dialog_create( gboolean *cancelled ) {
 	gtk_container_set_border_width(GTK_CONTAINER(window), 0);
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit LDAP Server"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_ldap_delete_event),
 			 cancelled);
diff --git a/src/editldap_basedn.c b/src/editldap_basedn.c
index 5d830db32..7dfe28775 100644
--- a/src/editldap_basedn.c
+++ b/src/editldap_basedn.c
@@ -152,6 +152,7 @@ static void edit_ldap_bdn_create(void) {
 	gtk_container_set_border_width(GTK_CONTAINER(window), 0);
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit LDAP - Select Search Base"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_ldap_bdn_delete_event), NULL );
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/edittags.c b/src/edittags.c
index d86365b7d..d1ddabe01 100644
--- a/src/edittags.c
+++ b/src/edittags.c
@@ -551,6 +551,7 @@ static void apply_window_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(apply_window_close_cb), NULL);
 	g_signal_connect(G_OBJECT(window), "size_allocate",
diff --git a/src/editvcard.c b/src/editvcard.c
index 2f7ada019..0c52ef087 100644
--- a/src/editvcard.c
+++ b/src/editvcard.c
@@ -150,6 +150,7 @@ static void addressbook_edit_vcard_create( gboolean *cancelled ) {
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title(GTK_WINDOW(window), _("Edit vCard Entry"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(edit_vcard_delete_event),
 			 cancelled);
diff --git a/src/exphtmldlg.c b/src/exphtmldlg.c
index ff4fd6c32..76d686c27 100644
--- a/src/exphtmldlg.c
+++ b/src/exphtmldlg.c
@@ -590,6 +590,7 @@ static void export_html_dialog_create( void ) {
 	gtk_window_set_title( GTK_WINDOW(window),
 		_("Export Address Book to HTML File") );
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(export_html_delete_event),
 			 NULL );
diff --git a/src/expldifdlg.c b/src/expldifdlg.c
index ba52c1539..1a58baf84 100644
--- a/src/expldifdlg.c
+++ b/src/expldifdlg.c
@@ -654,6 +654,7 @@ static void export_ldif_dialog_create( void ) {
 	gtk_window_set_title( GTK_WINDOW(window),
 		_("Export Address Book to LDIF File") );
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(export_ldif_delete_event),
 			 NULL );
diff --git a/src/export.c b/src/export.c
index 045fa87d7..3fbabcc28 100644
--- a/src/export.c
+++ b/src/export.c
@@ -113,6 +113,7 @@ static void export_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 5);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(delete_event), NULL);
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/foldersel.c b/src/foldersel.c
index a90f01c84..92786ecf6 100644
--- a/src/foldersel.c
+++ b/src/foldersel.c
@@ -250,6 +250,7 @@ static void foldersel_create(const gchar *title)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 4);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	gtk_widget_realize(window);
 	g_signal_connect(G_OBJECT(window), "delete_event",
diff --git a/src/gtk/about.c b/src/gtk/about.c
index d15d72bbd..8d75e234c 100644
--- a/src/gtk/about.c
+++ b/src/gtk/about.c
@@ -795,6 +795,7 @@ static void about_create(void)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "about");
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
 	gtk_window_set_title(GTK_WINDOW(window), _("About Claws Mail"));
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_widget_set_size_request(window, -1, -1);
 	g_signal_connect(G_OBJECT(window), "size_allocate",
diff --git a/src/gtk/description_window.c b/src/gtk/description_window.c
index dacdb14f3..4fb3561f4 100644
--- a/src/gtk/description_window.c
+++ b/src/gtk/description_window.c
@@ -85,6 +85,7 @@ static void description_create(DescriptionWindow * dwindow)
 			     gettext(dwindow->title));
 	gtk_container_set_border_width(GTK_CONTAINER(dwindow->window), 8);
 	gtk_window_set_resizable(GTK_WINDOW(dwindow->window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(dwindow->window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	/* Check number of lines to be show */
 	sz = 0;
diff --git a/src/gtk/foldersort.c b/src/gtk/foldersort.c
index a5a09b021..ffeee23f7 100644
--- a/src/gtk/foldersort.c
+++ b/src/gtk/foldersort.c
@@ -250,6 +250,7 @@ void foldersort_open()
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_title(GTK_WINDOW(window), _("Set mailbox order"));
 	gtk_window_set_modal(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(delete_event), dialog);
 	g_signal_connect (G_OBJECT(window), "size_allocate",
diff --git a/src/gtk/icon_legend.c b/src/gtk/icon_legend.c
index 06625b513..e5aca030f 100644
--- a/src/gtk/icon_legend.c
+++ b/src/gtk/icon_legend.c
@@ -126,6 +126,7 @@ static void legend_create(void)
 	gtk_window_set_title(GTK_WINDOW(window), _("Icon Legend"));
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_default_size(GTK_WINDOW(window), 666, 340);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(legend_close), NULL);
diff --git a/src/gtk/logwindow.c b/src/gtk/logwindow.c
index bf437044d..f9ebec08d 100644
--- a/src/gtk/logwindow.c
+++ b/src/gtk/logwindow.c
@@ -95,6 +95,7 @@ LogWindow *log_window_create(LogInstance instance)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "logwindow");
 	gtk_window_set_title(GTK_WINDOW(window), get_log_title(instance));
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(gtk_widget_hide_on_delete), NULL);
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/gtk/pluginwindow.c b/src/gtk/pluginwindow.c
index b07143d72..2b351c64c 100644
--- a/src/gtk/pluginwindow.c
+++ b/src/gtk/pluginwindow.c
@@ -302,6 +302,7 @@ void pluginwindow_create()
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_window_set_title(GTK_WINDOW(window), _("Plugins"));
 	gtk_window_set_modal(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	manage_window_set_transient(GTK_WINDOW(window));
 
 	vbox1 = gtk_vbox_new(FALSE, 4);
diff --git a/src/gtk/prefswindow.c b/src/gtk/prefswindow.c
index 0fc4c2aad..86befa163 100644
--- a/src/gtk/prefswindow.c
+++ b/src/gtk/prefswindow.c
@@ -426,6 +426,7 @@ void prefswindow_open_full(const gchar *title, GSList *prefs_pages,
 	gtk_window_set_position (GTK_WINDOW(prefswindow->window), GTK_WIN_POS_CENTER);
 	gtk_window_set_modal (GTK_WINDOW (prefswindow->window), TRUE);
 	gtk_window_set_resizable (GTK_WINDOW(prefswindow->window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(prefswindow->window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_transient_for (GTK_WINDOW(prefswindow->window),
 			GTK_WINDOW(mainwindow_get_mainwindow()->window));
 	gtk_container_set_border_width(GTK_CONTAINER(prefswindow->window), 4);
diff --git a/src/import.c b/src/import.c
index 3e1913d87..6896ce0d9 100644
--- a/src/import.c
+++ b/src/import.c
@@ -113,6 +113,7 @@ static void import_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 5);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(delete_event), NULL);
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/importldif.c b/src/importldif.c
index 255a32afa..ae01a230b 100644
--- a/src/importldif.c
+++ b/src/importldif.c
@@ -901,6 +901,7 @@ static void imp_ldif_dialog_create() {
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title( GTK_WINDOW(window), _("Import LDIF file into Address Book") );
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(imp_ldif_delete_event),
 			 NULL );
diff --git a/src/importmutt.c b/src/importmutt.c
index 1f76081ae..ecfbb7217 100644
--- a/src/importmutt.c
+++ b/src/importmutt.c
@@ -202,6 +202,7 @@ static void imp_mutt_create( gboolean *cancelled ) {
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title( GTK_WINDOW(window), _("Import MUTT file into Address Book") );
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(imp_mutt_delete_event), cancelled);
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/importpine.c b/src/importpine.c
index 08d117782..caf6f82d3 100644
--- a/src/importpine.c
+++ b/src/importpine.c
@@ -201,6 +201,7 @@ static void imp_pine_create( gboolean *cancelled ) {
 	gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
 	gtk_window_set_title( GTK_WINDOW(window), _("Import Pine file into Address Book") );
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(imp_pine_delete_event), cancelled);
 	g_signal_connect(G_OBJECT(window), "key_press_event",
diff --git a/src/message_search.c b/src/message_search.c
index e73fe8707..fab403bea 100644
--- a/src/message_search.c
+++ b/src/message_search.c
@@ -173,6 +173,7 @@ static void message_search_create(void)
 			      _("Find in current message"));
 	gtk_widget_set_size_request (window, 450, -1);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(gtk_widget_hide_on_delete), NULL);
diff --git a/src/messageview.c b/src/messageview.c
index f305a4a9b..b56961a13 100644
--- a/src/messageview.c
+++ b/src/messageview.c
@@ -714,6 +714,7 @@ static MessageView *messageview_create_with_new_window_visible(MainWindow *mainw
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "messageview");
 	gtk_window_set_title(GTK_WINDOW(window), _("Claws Mail - Message View"));
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	gtk_window_set_default_size(GTK_WINDOW(window), prefs_common.msgwin_width,
 			prefs_common.msgwin_height);
diff --git a/src/plugins/att_remover/att_remover.c b/src/plugins/att_remover/att_remover.c
index 65e6778bd..f98e0d8d1 100644
--- a/src/plugins/att_remover/att_remover.c
+++ b/src/plugins/att_remover/att_remover.c
@@ -336,6 +336,7 @@ static void remove_attachments_dialog(AttRemover *attremover)
 	gtk_container_set_border_width( GTK_CONTAINER(window), VBOX_BORDER);
 	gtk_window_set_title(GTK_WINDOW(window), _("Remove attachments"));
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_modal(GTK_WINDOW(window), TRUE);
 
 	g_signal_connect(G_OBJECT(window), "delete_event",
diff --git a/src/plugins/managesieve/sieve_manager.c b/src/plugins/managesieve/sieve_manager.c
index c33870650..a71abc406 100644
--- a/src/plugins/managesieve/sieve_manager.c
+++ b/src/plugins/managesieve/sieve_manager.c
@@ -661,6 +661,7 @@ static SieveManagerPage *sieve_manager_page_new()
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "sievemanager");
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_title (GTK_WINDOW (window), _("Manage Sieve Filters"));
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	MANAGE_WINDOW_SIGNALS_CONNECT (window);
 
 	g_signal_connect (G_OBJECT (window), "key_press_event",
diff --git a/src/plugins/pgpcore/passphrase.c b/src/plugins/pgpcore/passphrase.c
index 361593688..3a809eec8 100644
--- a/src/plugins/pgpcore/passphrase.c
+++ b/src/plugins/pgpcore/passphrase.c
@@ -86,6 +86,7 @@ passphrase_mbox(const gchar *uid_hint, const gchar *pass_hint, gint prev_bad, gi
     gtk_window_set_default_size(GTK_WINDOW(window), 375, 100);
     gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+    gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
     gtk_window_set_modal(GTK_WINDOW(window), TRUE);
     g_signal_connect(G_OBJECT(window), "delete_event",
                      G_CALLBACK(passphrase_deleted), NULL);
diff --git a/src/plugins/pgpcore/select-keys.c b/src/plugins/pgpcore/select-keys.c
index 8002a0315..cb9cb7847 100644
--- a/src/plugins/pgpcore/select-keys.c
+++ b/src/plugins/pgpcore/select-keys.c
@@ -407,6 +407,7 @@ create_dialog (struct select_keys_s *sk)
     gtk_container_set_border_width (GTK_CONTAINER (window), 8);
     gtk_window_set_title (GTK_WINDOW (window), _("Select Keys"));
     gtk_window_set_modal (GTK_WINDOW (window), TRUE);
+    gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
     g_signal_connect (G_OBJECT (window), "delete_event",
                       G_CALLBACK (delete_event_cb), sk);
     g_signal_connect (G_OBJECT (window), "key_press_event",
diff --git a/src/prefs_actions.c b/src/prefs_actions.c
index afa393111..b8a99939a 100644
--- a/src/prefs_actions.c
+++ b/src/prefs_actions.c
@@ -207,6 +207,7 @@ static void prefs_actions_create(MainWindow *mainwin)
 	gtk_container_set_border_width(GTK_CONTAINER (window), 8);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new(FALSE, 6);
 	gtk_widget_show(vbox);
diff --git a/src/prefs_customheader.c b/src/prefs_customheader.c
index 106841e59..83d64aebb 100644
--- a/src/prefs_customheader.c
+++ b/src/prefs_customheader.c
@@ -168,6 +168,7 @@ static void prefs_custom_header_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new (FALSE, 6);
 	gtk_widget_show (vbox);
diff --git a/src/prefs_display_header.c b/src/prefs_display_header.c
index 10cbe84e6..f179d0ddc 100644
--- a/src/prefs_display_header.c
+++ b/src/prefs_display_header.c
@@ -233,6 +233,7 @@ static void prefs_display_header_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new (FALSE, 6);
 	gtk_widget_show (vbox);
diff --git a/src/prefs_filtering.c b/src/prefs_filtering.c
index 943d238fb..cd3ee5081 100644
--- a/src/prefs_filtering.c
+++ b/src/prefs_filtering.c
@@ -341,6 +341,7 @@ static void prefs_filtering_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new (FALSE, 6);
 	gtk_widget_show (vbox);
diff --git a/src/prefs_filtering_action.c b/src/prefs_filtering_action.c
index 9af7fc056..cb77c1954 100644
--- a/src/prefs_filtering_action.c
+++ b/src/prefs_filtering_action.c
@@ -383,6 +383,7 @@ static void prefs_filtering_action_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), VBOX_BORDER);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new(FALSE, 6);
 	gtk_container_add(GTK_CONTAINER(window), vbox);
diff --git a/src/prefs_folder_column.c b/src/prefs_folder_column.c
index 4ef90f5ea..0261934b0 100644
--- a/src/prefs_folder_column.c
+++ b/src/prefs_folder_column.c
@@ -207,6 +207,7 @@ static void prefs_folder_column_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_title(GTK_WINDOW(window),
 			     _("Folder list columns configuration"));
 	g_signal_connect(G_OBJECT(window), "delete_event",
diff --git a/src/prefs_matcher.c b/src/prefs_matcher.c
index 03ec11a09..0e9a3e710 100644
--- a/src/prefs_matcher.c
+++ b/src/prefs_matcher.c
@@ -564,6 +564,7 @@ static void prefs_matcher_create(void)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_matcher");
 	gtk_container_set_border_width(GTK_CONTAINER(window), 4);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new(FALSE, 6);
 	gtk_container_add(GTK_CONTAINER(window), vbox);
diff --git a/src/prefs_other.c b/src/prefs_other.c
index 65c7c2bad..4e154c119 100644
--- a/src/prefs_other.c
+++ b/src/prefs_other.c
@@ -110,6 +110,7 @@ static void prefs_keybind_select(void)
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_modal (GTK_WINDOW (window), TRUE);
 	gtk_window_set_resizable(GTK_WINDOW (window), FALSE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	manage_window_set_transient (GTK_WINDOW (window));
 
 	vbox1 = gtk_vbox_new (FALSE, VSPACING);
diff --git a/src/prefs_summaries.c b/src/prefs_summaries.c
index 2a8b0a82c..0bec32cac 100644
--- a/src/prefs_summaries.c
+++ b/src/prefs_summaries.c
@@ -204,6 +204,7 @@ static GtkWidget *date_format_create(GtkButton *button, void *data)
 	gtk_container_set_border_width(GTK_CONTAINER(datefmt_win), 8);
 	gtk_window_set_title(GTK_WINDOW(datefmt_win), _("Date format"));
 	gtk_window_set_position(GTK_WINDOW(datefmt_win), GTK_WIN_POS_CENTER);
+	gtk_window_set_type_hint(GTK_WINDOW(datefmt_win), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_size_request(datefmt_win, 440, 280);
 
 	vbox1 = gtk_vbox_new(FALSE, 10);
diff --git a/src/prefs_summary_column.c b/src/prefs_summary_column.c
index fea0ac7cd..11ac67df5 100644
--- a/src/prefs_summary_column.c
+++ b/src/prefs_summary_column.c
@@ -221,6 +221,7 @@ static void prefs_summary_column_create(void)
 	gtk_container_set_border_width(GTK_CONTAINER(window), 8);
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_title(GTK_WINDOW(window),
 			     _("Message list columns configuration"));
 	g_signal_connect(G_OBJECT(window), "delete_event",
diff --git a/src/prefs_summary_open.c b/src/prefs_summary_open.c
index b9e6b824d..a0072d5fc 100644
--- a/src/prefs_summary_open.c
+++ b/src/prefs_summary_open.c
@@ -167,6 +167,7 @@ static void prefs_summary_open_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_size_request (GTK_WIDGET (window), 610, 310);
 
 	vbox = gtk_vbox_new (FALSE, 6);
diff --git a/src/prefs_template.c b/src/prefs_template.c
index c211bade6..2684e3e9f 100644
--- a/src/prefs_template.c
+++ b/src/prefs_template.c
@@ -193,6 +193,7 @@ static void prefs_template_window_create(void)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_template");
 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	vbox = gtk_vbox_new(FALSE, 8);
 	gtk_widget_show(vbox);
diff --git a/src/prefs_toolbar.c b/src/prefs_toolbar.c
index 513e084f3..7f68a02fa 100644
--- a/src/prefs_toolbar.c
+++ b/src/prefs_toolbar.c
@@ -1699,6 +1699,7 @@ static void icon_chooser_create(GtkButton *button, ToolbarPage *prefs_toolbar)
 	x -= 300-50;
 	gtk_window_move(GTK_WINDOW(icon_chooser_win), x, y);
 	gtk_window_set_resizable(GTK_WINDOW(icon_chooser_win), FALSE);
+	gtk_window_set_type_hint(GTK_WINDOW(icon_chooser_win), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_size_request(icon_chooser_win, 300, 320);
 
 	scrollwin = gtk_scrolled_window_new(NULL, NULL);
diff --git a/src/printing.c b/src/printing.c
index 7bef9f0ad..d5d32283a 100644
--- a/src/printing.c
+++ b/src/printing.c
@@ -427,6 +427,7 @@ static gboolean cb_preview(GtkPrintOperation        *operation,
 		geometry.min_width = 600;
 		geometry.min_height = 400;
 	}
+	gtk_window_set_type_hint(GTK_WINDOW(dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_window_set_geometry_hints(GTK_WINDOW(dialog), NULL, &geometry,
 				      GDK_HINT_MIN_SIZE);
 	gtk_widget_set_size_request(dialog, prefs_common.print_previewwin_width,
diff --git a/src/sourcewindow.c b/src/sourcewindow.c
index 135f02ef8..f51f896c5 100644
--- a/src/sourcewindow.c
+++ b/src/sourcewindow.c
@@ -65,6 +65,8 @@ SourceWindow *source_window_create(void)
 	gtk_window_set_title(GTK_WINDOW(window), _("Source of the message"));
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 	gtk_window_set_default_size(GTK_WINDOW(window), prefs_common.sourcewin_width,
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
+	gtk_widget_set_size_request(window, prefs_common.sourcewin_width,
 				    prefs_common.sourcewin_height);
 	
 	if (!geometry.min_height) {
diff --git a/src/ssl_manager.c b/src/ssl_manager.c
index 0735b2dbb..884a0225f 100644
--- a/src/ssl_manager.c
+++ b/src/ssl_manager.c
@@ -197,6 +197,7 @@ void ssl_manager_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(ssl_manager_close_cb), NULL);
 	g_signal_connect(G_OBJECT(window), "size_allocate",
diff --git a/src/summary_search.c b/src/summary_search.c
index 31e358a66..efe208fec 100644
--- a/src/summary_search.c
+++ b/src/summary_search.c
@@ -290,6 +290,7 @@ static void summary_search_create(void)
 	window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "summary_search");
 	gtk_window_set_title(GTK_WINDOW (window), _("Search messages"));
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_container_set_border_width(GTK_CONTAINER (window), 8);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(gtk_widget_hide_on_delete), NULL);
diff --git a/src/uri_opener.c b/src/uri_opener.c
index ec6e19eeb..e68e3e518 100644
--- a/src/uri_opener.c
+++ b/src/uri_opener.c
@@ -189,6 +189,7 @@ static void uri_opener_create(void)
 	gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 	gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
+	gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(window), "delete_event",
 			 G_CALLBACK(uri_opener_close_cb), NULL);
 	g_signal_connect (G_OBJECT(window), "size_allocate",

commit 045264bfc246f33a7790cd87125c3a2876698fe3
Author: Paul <paul at claws-mail.org>
Date:   Sat Sep 14 09:44:10 2019 +0100

    fix bolding of target folder
    
    target folder (when not using 'execute immediately') lost its boldness
    recently. This reinstates that, and makes the target folder colour
    override all other colours.

diff --git a/src/folderview.c b/src/folderview.c
index a61ea8865..aa0e568fb 100644
--- a/src/folderview.c
+++ b/src/folderview.c
@@ -1711,8 +1711,8 @@ static void folderview_update_node(FolderView *folderview, GtkCMCTreeNode *node)
 			use_bold = use_color = TRUE;
 		procmsg_msg_list_free(list);
 	} else {
-		/* if unread messages exist, print with bold font */
-		use_bold = (item->unread_msgs > 0|| item->new_msgs > 0) 
+		/* if unread messages exist or target folder is set, print with bold font */
+		use_bold = (item->unread_msgs > 0 || item->new_msgs > 0 || item->op_count > 0)
 				|| add_unread_mark;
 		/* if new messages exist, print with colored letter */
 		use_color =
@@ -1725,19 +1725,17 @@ static void folderview_update_node(FolderView *folderview, GtkCMCTreeNode *node)
 
 	if (use_bold) {
 		style = bold_style;
-		if (use_color) {
-			gtk_cmctree_node_set_foreground(ctree, node, &folderview->color_new);
-		} else if (item->op_count > 0) {
+		if (item->op_count > 0) {
 			gtk_cmctree_node_set_foreground(ctree, node, &folderview->color_op);
-		} else if (!gdk_rgba_equal(&item->prefs->color, &black)) {
-			gtk_cmctree_node_set_foreground(ctree, node, &item->prefs->color);
-		}
 	} else if (use_color) {
 		gtk_cmctree_node_set_foreground(ctree, node, &folderview->color_new);
 	} else if (item->op_count > 0) {
-		gtk_cmctree_node_set_foreground(ctree, node, &folderview->color_op);
-	} else if (!gdk_rgba_equal(&item->prefs->color, &black)) {
-		gtk_cmctree_node_set_foreground(ctree, node, &item->prefs->color);
+		}
+	} else if (use_color) {
+		gtk_cmctree_node_set_foreground(ctree, node, &folderview->color_new);
+	} else if (item->prefs->color != 0) {
+		gtkut_convert_int_to_gdk_color(item->prefs->color, &gdk_color);
+		gtk_cmctree_node_set_foreground(ctree, node, &gdk_color);
 	}
 
 	gtk_cmctree_node_set_row_style(ctree, node, style);

commit b3ae2518300138611f8d7908169785140d4da7a6
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Sep 6 14:18:58 2019 +0200

    Update authors lists

diff --git a/AUTHORS b/AUTHORS
index 5c5d9f564..e31ea46f1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -326,3 +326,4 @@ contributors (in addition to the above; based on Changelog)
 	Eric S. Raymond
 	Avinash Sonawane
 	Alex Smith
+	Florian Weimer
diff --git a/src/gtk/authors.h b/src/gtk/authors.h
index 57650073c..2ad414945 100644
--- a/src/gtk/authors.h
+++ b/src/gtk/authors.h
@@ -314,6 +314,7 @@ static char *CONTRIBS_LIST[] = {
 "Jonathan Ware",
 "Watanabe",
 "Rafal Weglarz",
+"Florian Weimer",
 "Martin Wicke",
 "Bob Woodside",
 "YAMAGUCHI",

commit b515861b7cfacd653f1994c58e92536d1e3525a0
Author: Ricardo Mones <ricardo at mones.org>
Date:   Fri Sep 6 14:18:19 2019 +0200

    Fix bug 4248 “Suport C99 compilers in m4/spamassassin.m4”
    
    Thanks Florian Weimer for the patch.

diff --git a/m4/spamassassin.m4 b/m4/spamassassin.m4
index 45882f39e..c70228ca6 100644
--- a/m4/spamassassin.m4
+++ b/m4/spamassassin.m4
@@ -13,6 +13,7 @@ AC_CHECK_HEADERS(time.h sysexits.h sys/socket.h netdb.h netinet/in.h)
 AC_CACHE_CHECK([for SHUT_RD],
        spamassassin_cv_has_shutrd, [
                 AC_TRY_COMPILE([#include <sys/types.h>
+#include <stdio.h>
 #include <sys/socket.h>],
                         [printf ("%d", SHUT_RD); return 0;],
                                         [spamassassin_cv_has_shutrd=yes],
@@ -30,7 +31,9 @@ dnl ----------------------------------------------------------------------
 
 AC_CACHE_CHECK([for h_errno],
         spamassassin_cv_has_herrno, [
-                AC_TRY_COMPILE([#include <netdb.h>],
+                AC_TRY_COMPILE([#include <netdb.h>
+#include <stdio.h>
+],
                         [printf ("%d", h_errno); return 0;],
                                         [spamassassin_cv_has_herrno=yes],
                                         [spamassassin_cv_has_herrno=no]),

commit 33d61c77455ab5ccca3e641312a9ef21f8f718e8
Author: Andrej Kacian <ticho at claws-mail.org>
Date:   Wed Aug 28 22:59:46 2019 +0200

    Initialize some missing members in rssyl_item_new()
    
    Among other things, this should fix the occasional
    glib runtime warning about removing an invalid GSource.

diff --git a/src/plugins/rssyl/rssyl.c b/src/plugins/rssyl/rssyl.c
index e6cc6e338..bb1ea4f9c 100644
--- a/src/plugins/rssyl/rssyl.c
+++ b/src/plugins/rssyl/rssyl.c
@@ -436,6 +436,7 @@ static FolderItem *rssyl_item_new(Folder *folder)
 	ritem->official_title = NULL;
 	ritem->source_id = NULL;
 	ritem->items = NULL;
+	ritem->deleted_items = NULL;
 	ritem->keep_old = TRUE;
 	ritem->default_refresh_interval = TRUE;
 	ritem->refresh_interval = atoi(PREF_DEFAULT_REFRESH);
@@ -446,6 +447,9 @@ static FolderItem *rssyl_item_new(Folder *folder)
 	ritem->silent_update = 0;
 	ritem->last_update = 0;
 	ritem->ignore_title_rename = FALSE;
+	ritem->ssl_verify_peer = TRUE;
+	ritem->feedprop = NULL;
+	ritem->refresh_id = 0;
 
 	return (FolderItem *)ritem;
 }

-----------------------------------------------------------------------


hooks/post-receive
-- 
Claws Mail


More information about the Commits mailing list