2009-01-09 Colin Leroy <colin@colino.net>
authorColin Leroy <colin@colino.net>
Fri, 9 Jan 2009 10:02:10 +0000 (10:02 +0000)
committerColin Leroy <colin@colino.net>
Fri, 9 Jan 2009 10:02:10 +0000 (10:02 +0000)
        * patches/claws-mail-3.7.0/01-bug_1810.patch
                Fix crash when hitting 'o' (disabled Open With)
        * patches/claws-mail-3.7.0/02-bug_1813.patch
                Fix themes installation
        * patches/claws-mail-3.7.0/03-bug_1814.patch
                Workaround wrong window positioning when taskbar
                is on top
        * patches/claws-mail-3.7.0/04-bug_1815.patch
                Fix Drag-n-drop to Compose window
        * patches/claws-mail-3.7.0/05-bug_1816.patch
                Fix bogus --attach error message

ChangeLog
patches/claws-mail-3.7.0/01-bug_1810.patch [new file with mode: 0755]
patches/claws-mail-3.7.0/02-bug_1813.patch [new file with mode: 0755]
patches/claws-mail-3.7.0/03-bug_1814.patch [new file with mode: 0755]
patches/claws-mail-3.7.0/04-bug_1815.patch [new file with mode: 0755]
patches/claws-mail-3.7.0/05-bug_1816.patch [new file with mode: 0755]

index e925020..ef5dcf0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2009-01-09  Colin Leroy  <colin@colino.net>
+
+       * patches/claws-mail-3.7.0/01-bug_1810.patch
+               Fix crash when hitting 'o' (disabled Open With)
+       * patches/claws-mail-3.7.0/02-bug_1813.patch
+               Fix themes installation
+       * patches/claws-mail-3.7.0/03-bug_1814.patch
+               Workaround wrong window positioning when taskbar
+               is on top
+       * patches/claws-mail-3.7.0/04-bug_1815.patch
+               Fix Drag-n-drop to Compose window
+       * patches/claws-mail-3.7.0/05-bug_1816.patch
+               Fix bogus --attach error message
+
 2008-12-19  Colin Leroy  <colin@colino.net>
 
        * packages/packages.current: Update Claws Mail to 3.7.0
diff --git a/patches/claws-mail-3.7.0/01-bug_1810.patch b/patches/claws-mail-3.7.0/01-bug_1810.patch
new file mode 100755 (executable)
index 0000000..4718b01
--- /dev/null
@@ -0,0 +1,23 @@
+#! /bin/sh
+patch -p0 -f $* < $0
+exit $?
+
+--- src/mimeview.c     6 Jan 2009 16:45:59 -0000       1.83.2.151
++++ src/mimeview.c     8 Jan 2009 17:21:57 -0000       1.83.2.152
+@@ -1451,13 +1451,13 @@
+               KEY_PRESS_EVENT_STOP();
+               mimeview_launch(mimeview, NULL);
+               return TRUE;
+-#ifndef G_OS_WIN32
+       case GDK_o:
+               BREAK_ON_MODIFIER_KEY();
+               KEY_PRESS_EVENT_STOP();
++#ifndef G_OS_WIN32
+               mimeview_open_with(mimeview);
+-              return TRUE;
+ #endif
++              return TRUE;
+       case GDK_c:
+               BREAK_ON_MODIFIER_KEY();
+               KEY_PRESS_EVENT_STOP();
+
diff --git a/patches/claws-mail-3.7.0/02-bug_1813.patch b/patches/claws-mail-3.7.0/02-bug_1813.patch
new file mode 100755 (executable)
index 0000000..2059019
--- /dev/null
@@ -0,0 +1,154 @@
+#! /bin/sh
+patch -p0 -f $* < $0
+exit $?
+
+Index: src/prefs_themes.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/prefs_themes.c,v
+retrieving revision 1.3.2.61
+retrieving revision 1.3.2.62
+diff -u -r1.3.2.61 -r1.3.2.62
+--- src/prefs_themes.c 2 Jan 2009 10:51:34 -0000       1.3.2.61
++++ src/prefs_themes.c 9 Jan 2009 08:02:05 -0000       1.3.2.62
+@@ -253,14 +253,19 @@
+ static gboolean prefs_themes_is_system_theme(const gchar *dirname)
+ {
+       gint len;
+-      
++      gchar *system_theme_dir;
++      gboolean is_sys = FALSE;
++
+       g_return_val_if_fail(dirname != NULL, FALSE);
+-      len = strlen(PACKAGE_DATA_DIR);
+-      if (strlen(dirname) > len && 0 == strncmp(dirname, PACKAGE_DATA_DIR, len))
+-              return TRUE;
++      system_theme_dir = stock_pixmap_get_system_theme_dir_for_theme(NULL);
++      len = strlen(system_theme_dir);
++      if (strlen(dirname) > len && 0 == strncmp(dirname, system_theme_dir, len))
++              is_sys = TRUE;
+       
+-      return FALSE;
++      g_free(system_theme_dir);
++
++      return is_sys;
+ }
+ static void prefs_themes_set_themes_menu(GtkComboBox *combo, const ThemesData *tdata)
+@@ -526,9 +531,8 @@
+                                GTK_STOCK_NO, GTK_STOCK_YES, NULL);
+               switch (val) {
+               case G_ALERTALTERNATE:
+-                      cinfo->dest = g_strconcat(PACKAGE_DATA_DIR, G_DIR_SEPARATOR_S,
+-                                                PIXMAP_THEME_DIR, G_DIR_SEPARATOR_S, 
+-                                                themename, NULL);
++                      cinfo->dest = stock_pixmap_get_system_theme_dir_for_theme(
++                                              themename);
+                       break;
+               case G_ALERTDEFAULT:
+                       break;
+Index: src/stock_pixmap.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/stock_pixmap.c,v
+retrieving revision 1.25.2.62
+retrieving revision 1.25.2.63
+diff -u -r1.25.2.62 -r1.25.2.63
+--- src/stock_pixmap.c 2 Jan 2009 13:05:54 -0000       1.25.2.62
++++ src/stock_pixmap.c 9 Jan 2009 08:02:05 -0000       1.25.2.63
+@@ -527,6 +527,19 @@
+       closedir(dp);
+ }
++gchar *stock_pixmap_get_system_theme_dir_for_theme(const gchar *theme)
++{
++      const gchar *sep = NULL;
++      if (theme && *theme)
++              sep = G_DIR_SEPARATOR_S;
++#ifndef G_OS_WIN32
++      return g_strconcat(PACKAGE_DATA_DIR, G_DIR_SEPARATOR_S,
++                         PIXMAP_THEME_DIR, sep, theme, NULL);
++#else
++      return g_strconcat(get_themes_dir(), sep, theme, NULL);
++#endif
++}
++
+ GList *stock_pixmap_themes_list_new(void)
+ {
+       gchar *defaulttheme;
+@@ -537,11 +550,9 @@
+       defaulttheme = g_strdup(DEFAULT_PIXMAP_THEME);
+       userthemes   = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, 
+                                  PIXMAP_THEME_DIR, NULL);
+-      systemthemes = g_strconcat(PACKAGE_DATA_DIR, G_DIR_SEPARATOR_S,
+-                                 PIXMAP_THEME_DIR, NULL);
++      systemthemes = stock_pixmap_get_system_theme_dir_for_theme(NULL);
+       list = g_list_append(list, defaulttheme);
+-      
+       stock_pixmap_find_themes_in_dir(&list, userthemes);
+       stock_pixmap_find_themes_in_dir(&list, systemthemes);
+Index: src/stock_pixmap.h
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/stock_pixmap.h,v
+retrieving revision 1.18.2.39
+retrieving revision 1.18.2.40
+diff -u -r1.18.2.39 -r1.18.2.40
+--- src/stock_pixmap.h 2 Jan 2009 13:05:54 -0000       1.18.2.39
++++ src/stock_pixmap.h 9 Jan 2009 08:02:05 -0000       1.18.2.40
+@@ -216,5 +216,6 @@
+                                            OverlayPosition     pos,
+                                            gint                border_x,
+                                            gint                border_y);
++gchar *stock_pixmap_get_system_theme_dir_for_theme(const gchar *theme);
+ #endif /* __STOCK_PIXMAP_H__ */
+Index: src/common/utils.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/common/utils.c,v
+retrieving revision 1.36.2.160
+retrieving revision 1.36.2.161
+diff -u -r1.36.2.160 -r1.36.2.161
+--- src/common/utils.c 6 Jan 2009 09:26:48 -0000       1.36.2.160
++++ src/common/utils.c 9 Jan 2009 08:02:05 -0000       1.36.2.161
+@@ -1996,6 +1996,21 @@
+ #endif
+ }
++
++#ifdef G_OS_WIN32
++/* Return the default directory for Themes. */
++const gchar *get_themes_dir(void)
++{
++      static gchar *themes_dir = NULL;
++
++      if (!themes_dir)
++              themes_dir = g_strconcat(w32_get_module_dir(),
++                                       "\\share\\claws-mail\\themes",
++                                       NULL);
++      return themes_dir;
++}
++#endif
++
+ const gchar *get_tmp_dir(void)
+ {
+       static gchar *tmp_dir = NULL;
+Index: src/common/utils.h
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/common/utils.h,v
+retrieving revision 1.20.2.65
+retrieving revision 1.20.2.66
+diff -u -r1.20.2.65 -r1.20.2.66
+--- src/common/utils.h 13 Dec 2008 21:20:39 -0000      1.20.2.65
++++ src/common/utils.h 9 Jan 2009 08:02:05 -0000       1.20.2.66
+@@ -359,7 +359,8 @@
+ gchar *get_tmp_file                   (void);
+ const gchar *get_domain_name          (void);
+ #ifdef G_OS_WIN32
+-const gchar *get_cert_file(void);
++const gchar *get_themes_dir             (void);
++const gchar *get_cert_file            (void);
+ #endif
+ /* file / directory handling */
+ off_t get_file_size           (const gchar    *file);
+
diff --git a/patches/claws-mail-3.7.0/03-bug_1814.patch b/patches/claws-mail-3.7.0/03-bug_1814.patch
new file mode 100755 (executable)
index 0000000..ad8642b
--- /dev/null
@@ -0,0 +1,23 @@
+#! /bin/sh
+patch -p0 -f $* < $0
+exit $?
+
+Index: src/messageview.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/messageview.c,v
+retrieving revision 1.94.2.194
+retrieving revision 1.94.2.195
+diff -u -r1.94.2.194 -r1.94.2.195
+--- src/messageview.c  9 Dec 2008 16:59:36 -0000       1.94.2.194
++++ src/messageview.c  9 Jan 2009 08:09:21 -0000       1.94.2.195
+@@ -674,6 +674,9 @@
+       gtk_widget_set_size_request(window, prefs_common.msgwin_width,
+                                   prefs_common.msgwin_height);
++#ifdef G_OS_WIN32
++      gtk_window_move(GTK_WINDOW(window), 48, 48);
++#endif
+       msgview = messageview_create(mainwin);
+
diff --git a/patches/claws-mail-3.7.0/04-bug_1815.patch b/patches/claws-mail-3.7.0/04-bug_1815.patch
new file mode 100755 (executable)
index 0000000..76740ac
--- /dev/null
@@ -0,0 +1,69 @@
+#! /bin/sh
+patch -p0 -f $* < $0
+exit $?
+
+Index: src/compose.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/compose.c,v
+retrieving revision 1.382.2.492
+diff -u -p -u -r1.382.2.492 compose.c
+--- src/compose.c      28 Dec 2008 16:23:07 -0000      1.382.2.492
++++ src/compose.c      9 Jan 2009 09:27:58 -0000
+@@ -10086,8 +10086,10 @@ static void compose_attach_drag_received
+       Compose *compose = (Compose *)user_data;
+       GList *list, *tmp;
+-      if (gdk_atom_name(data->type) && 
+-          !strcmp(gdk_atom_name(data->type), "text/uri-list")
++      if (((gdk_atom_name(data->type) && !strcmp(gdk_atom_name(data->type), "text/uri-list"))
++#ifdef G_OS_WIN32
++       || (gdk_atom_name(data->type) && !strcmp(gdk_atom_name(data->type), "DROPFILES_DND")))
++#endif
+           && gtk_drag_get_source_widget(context) != 
+               summary_get_main_widget(mainwindow_get_mainwindow()->summaryview)) {
+               list = uri_list_extract_filenames((const gchar *)data->data);
+@@ -10153,11 +10155,18 @@ static void compose_insert_drag_received
+       /* strangely, testing data->type == gdk_atom_intern("text/uri-list", TRUE)
+        * does not work */
++      debug_print("drop: %s (%s)\n", gdk_atom_name(data->type)?gdk_atom_name(data->type):"nul",
++              data->data?data->data:"nul");
++#ifndef G_OS_WIN32
+       if (gdk_atom_name(data->type) && !strcmp(gdk_atom_name(data->type), "text/uri-list")) {
++#else
++      if (gdk_atom_name(data->type) && !strcmp(gdk_atom_name(data->type), "DROPFILES_DND")) {
++#endif
+               AlertValue val = G_ALERTDEFAULT;
+               list = uri_list_extract_filenames((const gchar *)data->data);
+-
++              debug_print("list: %p (%s)\n", list, 
++                      data->data?data->data:"nul");
+               if (list == NULL && strstr((gchar *)(data->data), "://")) {
+                       /* Assume a list of no files, and data has ://, is a remote link */
+                       gchar *tmpdata = g_strstrip(g_strdup((const gchar *)data->data));
+Index: src/common/utils.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/common/utils.c,v
+retrieving revision 1.36.2.161
+diff -u -p -u -r1.36.2.161 utils.c
+--- src/common/utils.c 9 Jan 2009 08:02:05 -0000       1.36.2.161
++++ src/common/utils.c 9 Jan 2009 09:28:01 -0000
+@@ -1396,6 +1396,7 @@ GList *uri_list_extract_filenames(const 
+                    * g_filename_from_uri() rejects escaped/locale encoded uri
+                    * string which come from Nautilus.
+                    */
++#ifndef G_OS_WIN32
+                                       if (g_utf8_validate(file, -1, NULL))
+                                               locale_file
+                                                       = conv_codeset_strdup(
+@@ -1404,6 +1405,9 @@ GList *uri_list_extract_filenames(const 
+                                                               conv_get_locale_charset_str());
+                                       if (!locale_file)
+                                               locale_file = g_strdup(file + 5);
++#else
++                                      locale_file = g_filename_from_uri(file, NULL, NULL);
++#endif
+                                       result = g_list_append(result, locale_file);
+                               }
+                       }
diff --git a/patches/claws-mail-3.7.0/05-bug_1816.patch b/patches/claws-mail-3.7.0/05-bug_1816.patch
new file mode 100755 (executable)
index 0000000..4849a2d
--- /dev/null
@@ -0,0 +1,24 @@
+#! /bin/sh
+patch -p0 -f $* < $0
+exit $?
+
+Index: src/main.c
+===================================================================
+RCS file: /srv/cvs/claws-mail/claws/src/main.c,v
+retrieving revision 1.115.2.216
+diff -u -p -u -r1.115.2.216 main.c
+--- src/main.c 26 Nov 2008 11:59:57 -0000      1.115.2.216
++++ src/main.c 9 Jan 2009 09:44:35 -0000
+@@ -2341,10 +2341,9 @@ static void lock_socket_input_cb(gpointe
+               mailto = g_strdup(buf + strlen("compose_attach") + 1);
+               files = g_ptr_array_new();
+               while (fd_gets(sock, buf, sizeof(buf)) > 0) {
+-                      if (buf[0] == '.' && buf[1] == '\n') {
+-                              break;
+-                      }
+                       strretchomp(buf);
++                      if (!strcmp2(buf, "."))
++                              break;
+                       g_ptr_array_add(files, g_strdup(buf));
+               }
+               open_compose_new(mailto, files);