Contents of /trunk/mousepad/patches/mousepad-0.2.16-fix-first-replace.patch
Parent Directory | Revision Log
Revision 1067 -
(show 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 | --- 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); |