Mercurial > pidgin
comparison gtk/gtkimhtml.c @ 14801:1986872f2868
[gaim-migrate @ 17566]
fix searching in an empty conversation (SF bug #1582852)
committer: Tailor Script <tailor@pidgin.im>
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Mon, 23 Oct 2006 18:10:51 +0000 |
parents | f7b0c1a4b9a7 |
children | fd321da41de4 |
comparison
equal
deleted
inserted
replaced
14800:c678034a7e3e | 14801:1986872f2868 |
---|---|
3529 | 3529 |
3530 gboolean gtk_imhtml_search_find(GtkIMHtml *imhtml, const gchar *text) | 3530 gboolean gtk_imhtml_search_find(GtkIMHtml *imhtml, const gchar *text) |
3531 { | 3531 { |
3532 GtkTextIter iter, start, end; | 3532 GtkTextIter iter, start, end; |
3533 gboolean new_search = TRUE; | 3533 gboolean new_search = TRUE; |
3534 GtkTextMark *start_mark; | |
3534 | 3535 |
3535 g_return_val_if_fail(imhtml != NULL, FALSE); | 3536 g_return_val_if_fail(imhtml != NULL, FALSE); |
3536 g_return_val_if_fail(text != NULL, FALSE); | 3537 g_return_val_if_fail(text != NULL, FALSE); |
3537 | 3538 |
3538 if (imhtml->search_string && !strcmp(text, imhtml->search_string)) | 3539 start_mark = gtk_text_buffer_get_mark(imhtml->text_buffer, "search"); |
3540 | |
3541 if (start_mark && imhtml->search_string && !strcmp(text, imhtml->search_string)) | |
3539 new_search = FALSE; | 3542 new_search = FALSE; |
3540 | 3543 |
3541 if (new_search) { | 3544 if (new_search) { |
3542 gtk_imhtml_search_clear(imhtml); | 3545 gtk_imhtml_search_clear(imhtml); |
3546 g_free(imhtml->search_string); | |
3547 imhtml->search_string = g_strdup(text); | |
3543 gtk_text_buffer_get_start_iter(imhtml->text_buffer, &iter); | 3548 gtk_text_buffer_get_start_iter(imhtml->text_buffer, &iter); |
3544 } else { | 3549 } else { |
3545 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &iter, | 3550 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &iter, |
3546 gtk_text_buffer_get_mark(imhtml->text_buffer, "search")); | 3551 start_mark); |
3547 } | 3552 } |
3548 g_free(imhtml->search_string); | |
3549 imhtml->search_string = g_strdup(text); | |
3550 | 3553 |
3551 if (gtk_source_iter_forward_search(&iter, imhtml->search_string, | 3554 if (gtk_source_iter_forward_search(&iter, imhtml->search_string, |
3552 GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_CASE_INSENSITIVE, | 3555 GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_CASE_INSENSITIVE, |
3553 &start, &end, NULL)) | 3556 &start, &end, NULL)) |
3554 { | 3557 { |