commit b612b470a5d7c3335d6a58af6019b2336ca09a32 from: Oliver Lowe date: Mon Aug 18 04:26:21 2025 UTC Don't ever wrap pasted text Too clever commit - 73784e9e59414ec2d44efd592ede0fd8fdf1ff0b commit + b612b470a5d7c3335d6a58af6019b2336ca09a32 blob - a97533ce97055e39d99fa7ed7a21077056a90723 blob + bc6734d20eca01fd2ac92bddf2b93b8218cf0ffa --- src/compose.c +++ src/compose.c @@ -420,10 +420,7 @@ static void compose_paste_cb (GtkAction *action, gpointer data); static void compose_paste_as_quote_cb (GtkAction *action, gpointer data); -static void compose_paste_no_wrap_cb (GtkAction *action, - gpointer data); -static void compose_paste_wrap_cb (GtkAction *action, - gpointer data); + static void compose_allsel_cb (GtkAction *action, gpointer data); @@ -596,8 +593,6 @@ static GtkActionEntry compose_entries[] = {"Edit/SpecialPaste", NULL, N_("_Special paste"), NULL, NULL, NULL }, {"Edit/SpecialPaste/AsQuotation", NULL, N_("As _quotation"), NULL, NULL, G_CALLBACK(compose_paste_as_quote_cb) }, - {"Edit/SpecialPaste/Wrapped", NULL, N_("_Wrapped"), NULL, NULL, G_CALLBACK(compose_paste_wrap_cb) }, - {"Edit/SpecialPaste/Unwrapped", NULL, N_("_Unwrapped"), NULL, NULL, G_CALLBACK(compose_paste_no_wrap_cb) }, {"Edit/SelectAll", NULL, N_("Select _all"), "A", NULL, G_CALLBACK(compose_allsel_cb) }, @@ -7303,10 +7298,8 @@ static void compose_savemsg_select_cb(GtkWidget *widge g_free(path); } -static void entry_paste_clipboard(Compose *compose, GtkWidget *entry, gboolean wrap, - GdkAtom clip, GtkTextIter *insert_place); +static void entry_paste_clipboard(Compose *compose, GtkWidget *entry, GdkAtom clip, GtkTextIter *insert_place); - static gboolean text_clicked(GtkWidget *text, GdkEventButton *event, Compose *compose) { @@ -7357,9 +7350,7 @@ static gboolean text_clicked(GtkWidget *text, GdkEvent gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW(text), &iter, x, y); - entry_paste_clipboard(compose, text, - prefs_common.linewrap_pastes, - GDK_SELECTION_PRIMARY, &iter); + entry_paste_clipboard(compose, text, GDK_SELECTION_PRIMARY, &iter); UNBLOCK_WRAP(); return TRUE; } @@ -7575,8 +7566,6 @@ static Compose *compose_create(PrefsAccount *account, MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Edit", "SpecialPaste", "Edit/SpecialPaste", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Edit/SpecialPaste", "AsQuotation", "Edit/SpecialPaste/AsQuotation", GTK_UI_MANAGER_MENUITEM) - MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Edit/SpecialPaste", "Wrapped", "Edit/SpecialPaste/Wrapped", GTK_UI_MANAGER_MENUITEM) - MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Edit/SpecialPaste", "Unwrapped", "Edit/SpecialPaste/Unwrapped", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Edit", "SelectAll", "Edit/SelectAll", GTK_UI_MANAGER_MENUITEM) @@ -9985,9 +9974,7 @@ static void entry_copy_clipboard(GtkWidget *entry) gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)); } -static void paste_text(Compose *compose, GtkWidget *entry, - gboolean wrap, GdkAtom clip, GtkTextIter *insert_place, - const gchar *contents) +static void paste_text(Compose *compose, GtkWidget *entry, GdkAtom clip, GtkTextIter *insert_place, const gchar *contents) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry)); GtkTextMark *mark_start = gtk_text_buffer_get_insert(buffer); @@ -10019,19 +10006,10 @@ static void paste_text(Compose *compose, GtkWidget *en gtk_text_buffer_select_range(buffer, insert_place, insert_place); } - if (!wrap) { - /* paste unwrapped: mark the paste so it's not wrapped later */ - end = start + strlen(contents); - gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, start); - gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, end); - gtk_text_buffer_apply_tag_by_name(buffer, "no_wrap", &start_iter, &end_iter); - } else if (wrap && clip == GDK_SELECTION_PRIMARY) { - /* rewrap paragraph now (after a mid-click-paste) */ - mark_start = gtk_text_buffer_get_insert(buffer); - gtk_text_buffer_get_iter_at_mark(buffer, &start_iter, mark_start); - gtk_text_iter_backward_char(&start_iter); - compose_beautify_paragraph(compose, &start_iter, TRUE); - } + end = start + strlen(contents); + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, start); + gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, end); + gtk_text_buffer_apply_tag_by_name(buffer, "no_wrap", &start_iter, &end_iter); compose->modified = TRUE; } @@ -10136,7 +10114,7 @@ int attach_image(Compose *compose, GtkSelectionData *d } static void entry_paste_clipboard(Compose *compose, GtkWidget *entry, - gboolean wrap, GdkAtom clip, GtkTextIter *insert_place) + GdkAtom clip, GtkTextIter *insert_place) { if (GTK_IS_TEXT_VIEW(entry)) { GdkAtom types = gdk_atom_intern ("TARGETS", FALSE); @@ -10182,8 +10160,7 @@ static void entry_paste_clipboard(Compose *compose, Gt } if (!paste_done) { gchar *def_text = gtk_clipboard_wait_for_text(clipboard); - paste_text(compose, entry, wrap, clip, - insert_place, def_text); + paste_text(compose, entry, clip, insert_place, def_text); g_free(def_text); } g_free(targets); @@ -10229,14 +10206,9 @@ static void compose_copy_cb(GtkAction *action, gpointe static void compose_paste_cb(GtkAction *action, gpointer data) { Compose *compose = (Compose *)data; - gint prev_autowrap; GtkTextBuffer *buffer; - BLOCK_WRAP(); if (compose->focused_editable && gtk_widget_has_focus(compose->focused_editable)) - entry_paste_clipboard(compose, compose->focused_editable, - prefs_common.linewrap_pastes, - GDK_SELECTION_CLIPBOARD, NULL); - UNBLOCK_WRAP(); + entry_paste_clipboard(compose, compose->focused_editable, GDK_SELECTION_CLIPBOARD, NULL); #ifdef USE_ENCHANT if (gtk_widget_has_focus(compose->text) && @@ -10249,7 +10221,6 @@ static void compose_paste_cb(GtkAction *action, gpoint static void compose_paste_as_quote_cb(GtkAction *action, gpointer data) { Compose *compose = (Compose *)data; - gint wrap_quote = prefs_common.linewrap_quote; if (compose->focused_editable && gtk_widget_has_focus(compose->focused_editable)) { /* let text_insert() (called directly or at a later time * after the gtk_editable_paste_clipboard) know that @@ -10261,52 +10232,10 @@ static void compose_paste_as_quote_cb(GtkAction *actio g_object_set_data(G_OBJECT(compose->focused_editable), "paste_as_quotation", GINT_TO_POINTER(paste_as_quotation + 1)); - prefs_common.linewrap_quote = prefs_common.linewrap_pastes; - entry_paste_clipboard(compose, compose->focused_editable, - prefs_common.linewrap_pastes, - GDK_SELECTION_CLIPBOARD, NULL); - prefs_common.linewrap_quote = wrap_quote; + entry_paste_clipboard(compose, compose->focused_editable, GDK_SELECTION_CLIPBOARD, NULL); } } -static void compose_paste_no_wrap_cb(GtkAction *action, gpointer data) -{ - Compose *compose = (Compose *)data; - gint prev_autowrap; - GtkTextBuffer *buffer; - BLOCK_WRAP(); - if (compose->focused_editable && gtk_widget_has_focus(compose->focused_editable)) - entry_paste_clipboard(compose, compose->focused_editable, FALSE, - GDK_SELECTION_CLIPBOARD, NULL); - UNBLOCK_WRAP(); - -#ifdef USE_ENCHANT - if (gtk_widget_has_focus(compose->text) && - compose->gtkaspell && - compose->gtkaspell->check_while_typing) - gtkaspell_highlight_all(compose->gtkaspell); -#endif -} - -static void compose_paste_wrap_cb(GtkAction *action, gpointer data) -{ - Compose *compose = (Compose *)data; - gint prev_autowrap; - GtkTextBuffer *buffer; - BLOCK_WRAP(); - if (compose->focused_editable && gtk_widget_has_focus(compose->focused_editable)) - entry_paste_clipboard(compose, compose->focused_editable, TRUE, - GDK_SELECTION_CLIPBOARD, NULL); - UNBLOCK_WRAP(); - -#ifdef USE_ENCHANT - if (gtk_widget_has_focus(compose->text) && - compose->gtkaspell && - compose->gtkaspell->check_while_typing) - gtkaspell_highlight_all(compose->gtkaspell); -#endif -} - static void compose_allsel_cb(GtkAction *action, gpointer data) { Compose *compose = (Compose *)data; blob - 302f71eff1e9225344917b9fb3c36c082f943295 blob + e51960e08ef097f4c88bcaae1bec314d4a77593e --- src/prefs_common.c +++ src/prefs_common.c @@ -173,8 +173,6 @@ static PrefParam param[] = { NULL, NULL, NULL}, {"linewrap_quotation", "TRUE", &prefs_common.linewrap_quote, P_BOOL, NULL, NULL, NULL}, - {"linewrap_pastes", "TRUE", &prefs_common.linewrap_pastes, P_BOOL, - NULL, NULL, NULL}, {"primary_paste_unselects", "FALSE", &prefs_common.primary_paste_unselects, P_BOOL, NULL, NULL, NULL}, {"linewrap_auto", "TRUE", &prefs_common.autowrap, P_BOOL, blob - 5f032280fc2458ddbc8bdcf7ebae7ac079afb717 blob + b7e0d26b57ec290f5099887490d4499948c32312 --- src/prefs_common.h +++ src/prefs_common.h @@ -183,7 +183,6 @@ struct _PrefsCommon gint undolevels; gint linewrap_len; gboolean linewrap_quote; - gboolean linewrap_pastes; gboolean primary_paste_unselects; gboolean autowrap; gboolean auto_indent; blob - d87e803e10de30f1228a462348e666defc5d52dd blob + 0d65f13953e9b950b36b348ef95f70af9426dec5 --- src/prefs_wrapping.c +++ src/prefs_wrapping.c @@ -48,7 +48,6 @@ typedef struct _WrappingPage GtkWidget *spinbtn_linewrap; GtkWidget *checkbtn_wrapquote; - GtkWidget *checkbtn_wrappastes; GtkWidget *checkbtn_autowrap; GtkWidget *checkbtn_autoindent; } WrappingPage; @@ -64,7 +63,6 @@ static void prefs_wrapping_create_widget(PrefsPage *_p GtkAdjustment *spinbtn_linewrap_adj; GtkWidget *spinbtn_linewrap; GtkWidget *checkbtn_wrapquote; - GtkWidget *checkbtn_wrappastes; GtkWidget *checkbtn_autowrap; GtkWidget *checkbtn_autoindent; GtkWidget *hbox1; @@ -79,7 +77,6 @@ static void prefs_wrapping_create_widget(PrefsPage *_p PACK_CHECK_BUTTON (vbox2, checkbtn_autowrap, _("Auto wrapping")); PACK_CHECK_BUTTON (vbox2, checkbtn_wrapquote, _("Wrap quotation")); - PACK_CHECK_BUTTON (vbox2, checkbtn_wrappastes, _("Wrap pasted text")); PACK_CHECK_BUTTON (vbox2, checkbtn_autoindent, _("Auto indent")); hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); @@ -105,8 +102,6 @@ static void prefs_wrapping_create_widget(PrefsPage *_p prefs_common.autowrap); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_wrapquote), prefs_common.linewrap_quote); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_wrappastes), - prefs_common.linewrap_pastes); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_autoindent), prefs_common.auto_indent); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_linewrap), @@ -115,7 +110,6 @@ static void prefs_wrapping_create_widget(PrefsPage *_p prefs_wrapping->window = GTK_WIDGET(window); prefs_wrapping->spinbtn_linewrap = spinbtn_linewrap; prefs_wrapping->checkbtn_wrapquote = checkbtn_wrapquote; - prefs_wrapping->checkbtn_wrappastes = checkbtn_wrappastes; prefs_wrapping->checkbtn_autowrap = checkbtn_autowrap; prefs_wrapping->checkbtn_autoindent = checkbtn_autoindent; @@ -130,8 +124,6 @@ static void prefs_wrapping_save(PrefsPage *_page) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(page->spinbtn_linewrap)); prefs_common.linewrap_quote = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_wrapquote)); - prefs_common.linewrap_pastes = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_wrappastes)); prefs_common.autowrap = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_autowrap)); prefs_common.auto_indent =