Magellan Linux

Annotation of /trunk/mousepad/patches/mousepad-0.2.16-fix-first-replace.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1067 - (hide annotations) (download)
Mon Aug 9 14:08:31 2010 UTC (13 years, 9 months ago) by niro
File size: 1313 byte(s)
-fixed mousepad's broken find and replace functionality

1 niro 1067 --- src/search.c
2     +++ src/search.c
3     @@ -78,7 +78,7 @@
4     static gint document_replace_real(StructData *sd)
5     {
6     GtkTextIter iter, match_start, match_end;
7     - GtkTextMark *mark_init = NULL;
8     + GtkTextMark *mark_init = NULL, *mark_start, *mark_end;
9     gboolean res;
10     gint num = 0;
11     GtkWidget *q_dialog = NULL;
12     @@ -113,6 +113,11 @@
13     if (num == 0 && q_dialog == NULL)
14     q_dialog = create_dialog_message_question(
15     gtk_widget_get_toplevel(sd->mainwin->textview), _("Replace?"));
16     +
17     + gtk_text_buffer_get_selection_bounds(textbuffer, &match_start, &match_end);
18     + mark_start = gtk_text_buffer_create_mark(textbuffer, NULL, &match_start, FALSE);
19     + mark_end = gtk_text_buffer_create_mark(textbuffer, NULL, &match_end, FALSE);
20     +
21     switch (gtk_dialog_run(GTK_DIALOG(q_dialog))) {
22     case GTK_RESPONSE_CANCEL:
23     res = 0;
24     @@ -122,6 +127,11 @@
25     case GTK_RESPONSE_NO:
26     continue;
27     }
28     +
29     + gtk_text_buffer_get_iter_at_mark(textbuffer, &match_start, mark_start);
30     + gtk_text_buffer_get_iter_at_mark(textbuffer, &match_end, mark_end);
31     + gtk_text_buffer_move_mark_by_name(textbuffer, "selection_bound", &match_start);
32     + gtk_text_buffer_move_mark_by_name(textbuffer, "insert", &match_end);
33     }
34     gtk_text_buffer_delete_selection(textbuffer, TRUE, TRUE);
35     undo_set_sequency(TRUE);