2006-02-07 [colin] 2.0.0cvs28
[claws.git] / src / compose.c
index 2921e0635591b6d10f2468f71c4a97cae913a293..915957e82726a61bd4d5d89a8097d20539a57582 100644 (file)
@@ -698,6 +698,12 @@ static GtkItemFactoryEntry compose_entries[] =
         ENC_ACTION(C_WINDOWS_1255)},
        {N_("/_Options/Character _encoding/---"), NULL, NULL, 0, "<Separator>"},
 
+       {N_("/_Options/Character _encoding/Arabic (ISO-8859-_6)"),
+        ENC_ACTION(C_ISO_8859_6)},
+       {N_("/_Options/Character _encoding/Arabic (Windows-1256)"),
+        ENC_ACTION(C_CP1256)},
+       {N_("/_Options/Character _encoding/---"), NULL, NULL, 0, "<Separator>"},
+
        {N_("/_Options/Character _encoding/Turkish (ISO-8859-_9)"),
         ENC_ACTION(C_ISO_8859_9)},
        {N_("/_Options/Character _encoding/---"), NULL, NULL, 0, "<Separator>"},
@@ -3276,6 +3282,7 @@ static void compose_beautify_paragraph(Compose *compose, GtkTextIter *par_iter,
        gint startq_offset = -1, noq_offset = -1;
        gint uri_start = -1, uri_stop = -1;
        gint nouri_start = -1, nouri_stop = -1;
+       gint num_blocks = 0;
 
        compose->autowrap = FALSE;
 
@@ -3340,11 +3347,12 @@ static void compose_beautify_paragraph(Compose *compose, GtkTextIter *par_iter,
                gchar *o_walk = NULL, *walk = NULL, *bp = NULL, *ep = NULL;
                gint walk_pos;
                
-               if (!prev_autowrap)
+               if (!prev_autowrap && num_blocks == 0) {
+                       num_blocks++;
                        g_signal_handlers_block_by_func(G_OBJECT(buffer),
                                        G_CALLBACK(text_inserted),
                                        compose);
-               
+               }
                if (gtk_text_iter_has_tag(&iter, compose->no_wrap_tag) && !force)
                        goto colorize;
 
@@ -3424,10 +3432,11 @@ static void compose_beautify_paragraph(Compose *compose, GtkTextIter *par_iter,
                }
 
 colorize:
-               if (!prev_autowrap)
+               if (!prev_autowrap) {
                        g_signal_handlers_unblock_by_func(G_OBJECT(buffer),
                                        G_CALLBACK(text_inserted),
                                        compose);
+               }
                end_of_line = iter;
                while (!gtk_text_iter_ends_line(&end_of_line)) {
                        gtk_text_iter_forward_char(&end_of_line);
@@ -6645,7 +6654,6 @@ static void compose_exec_ext_editor(Compose *compose)
 #ifdef G_OS_UNIX
 static gint compose_exec_ext_editor_real(const gchar *file)
 {
-       static gchar *def_cmd = "emacs %s";
        gchar buf[1024];
        gchar *p;
        gchar **cmdline;
@@ -6673,7 +6681,7 @@ static gint compose_exec_ext_editor_real(const gchar *file)
                if (prefs_common.ext_editor_cmd)
                        g_warning("External editor command line is invalid: '%s'\n",
                                  prefs_common.ext_editor_cmd);
-               g_snprintf(buf, sizeof(buf), def_cmd, file);
+               g_snprintf(buf, sizeof(buf), DEFAULT_EDITOR_CMD, file);
        }
 
        cmdline = strsplit_with_quote(buf, " ", 1024);
@@ -7911,7 +7919,7 @@ static void compose_toggle_ruler_cb(gpointer data, guint action,
 }
 
 static void compose_attach_drag_received_cb (GtkWidget         *widget,
-                                            GdkDragContext     *drag_context,
+                                            GdkDragContext     *context,
                                             gint                x,
                                             gint                y,
                                             GtkSelectionData   *data,
@@ -7923,7 +7931,9 @@ static void compose_attach_drag_received_cb (GtkWidget            *widget,
        GList *list, *tmp;
 
        if (gdk_atom_name(data->type) && 
-           !strcmp(gdk_atom_name(data->type), "text/uri-list")) {
+           !strcmp(gdk_atom_name(data->type), "text/uri-list")
+           && gtk_drag_get_source_widget(context) != 
+               mainwindow_get_mainwindow()->summaryview->ctree) {
                list = uri_list_extract_filenames((const gchar *)data->data);
                for (tmp = list; tmp != NULL; tmp = tmp->next)
                        compose_attach_append
@@ -7932,9 +7942,8 @@ static void compose_attach_drag_received_cb (GtkWidget            *widget,
                if (list) compose_changed_cb(NULL, compose);
                list_free_strings(list);
                g_list_free(list);
-       } else if (gdk_atom_name(data->type) && 
-                  !strcmp(gdk_atom_name(data->type), "text/plain") &&
-                  data->data && !strcmp(data->data, "Dummy-Summaryview")) {
+       } else if (gtk_drag_get_source_widget(context) 
+                  == mainwindow_get_mainwindow()->summaryview->ctree) {
                /* comes from our summaryview */
                SummaryView * summaryview = NULL;
                GSList * list = NULL, *cur = NULL;