Annotation of /trunk/mousepad/patches/mousepad-0.2.16-fix-first-replace.patch
Parent Directory | Revision Log
Revision 1067 -
(hide annotations)
(download)
Mon Aug 9 14:08:31 2010 UTC (14 years, 1 month ago) by niro
File size: 1313 byte(s)
Mon Aug 9 14:08:31 2010 UTC (14 years, 1 month 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); |