Fixed selection on find_first
This commit is contained in:
parent
e4d5b5598c
commit
c12a050ec8
|
@ -86,7 +86,7 @@ gm_searchable_text_view_find_first(GtkTextView *text_view,
|
||||||
const gchar *str, GmSearchableSearchFlags flags) {
|
const gchar *str, GmSearchableSearchFlags flags) {
|
||||||
GtkTextIter iter;
|
GtkTextIter iter;
|
||||||
GtkTextBuffer *buffer;
|
GtkTextBuffer *buffer;
|
||||||
|
|
||||||
g_return_val_if_fail(text_view != NULL, FALSE);
|
g_return_val_if_fail(text_view != NULL, FALSE);
|
||||||
|
|
||||||
buffer = gtk_text_view_get_buffer(text_view);
|
buffer = gtk_text_view_get_buffer(text_view);
|
||||||
|
@ -99,8 +99,14 @@ gm_searchable_text_view_find_first(GtkTextView *text_view,
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_text_buffer_place_cursor(buffer, &iter);
|
gtk_text_buffer_place_cursor(buffer, &iter);
|
||||||
|
|
||||||
return gm_searchable_text_view_find_next(text_view, str, flags);
|
if (*str == '\0') {
|
||||||
|
gtk_text_buffer_move_mark(buffer,
|
||||||
|
gtk_text_buffer_get_selection_bound(buffer), &iter);
|
||||||
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
return gm_searchable_text_view_find_next(text_view, str, flags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -119,7 +125,7 @@ gm_searchable_text_view_replace(GtkTextView *text_view, gchar const *replace) {
|
||||||
} else {
|
} else {
|
||||||
gtk_text_buffer_begin_user_action(buffer);
|
gtk_text_buffer_begin_user_action(buffer);
|
||||||
gtk_text_buffer_delete(buffer, &start, &end);
|
gtk_text_buffer_delete(buffer, &start, &end);
|
||||||
gtk_text_buffer_insert(buffer, &start, replace, -1);
|
gtk_text_buffer_insert(buffer, &start, replace, -1);
|
||||||
gtk_text_buffer_end_user_action(buffer);
|
gtk_text_buffer_end_user_action(buffer);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Reference in New Issue