Mercurial > pidgin
comparison finch/libgnt/gnttextview.c @ 21306:14f06265d134
Clear the tags when the textview is cleared.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 12 Nov 2007 16:15:53 +0000 |
parents | 9187d331aebe |
children | bc4afc8ea960 |
comparison
equal
deleted
inserted
replaced
21305:0208beabfa33 | 21306:14f06265d134 |
---|---|
58 static GntWidgetClass *parent_class = NULL; | 58 static GntWidgetClass *parent_class = NULL; |
59 | 59 |
60 static gchar *select_start; | 60 static gchar *select_start; |
61 static gchar *select_end; | 61 static gchar *select_end; |
62 static gboolean double_click; | 62 static gboolean double_click; |
63 | |
64 static void reset_text_view(GntTextView *view); | |
63 | 65 |
64 static void | 66 static void |
65 gnt_text_view_draw(GntWidget *widget) | 67 gnt_text_view_draw(GntWidget *widget) |
66 { | 68 { |
67 GntTextView *view = GNT_TEXT_VIEW(widget); | 69 GntTextView *view = GNT_TEXT_VIEW(widget); |
368 back = g_list_last(view->list); | 370 back = g_list_last(view->list); |
369 view->list = NULL; | 371 view->list = NULL; |
370 | 372 |
371 string = view->string; | 373 string = view->string; |
372 view->string = NULL; | 374 view->string = NULL; |
373 gnt_text_view_clear(view); | 375 reset_text_view(view); |
374 | 376 |
375 view->string = g_string_set_size(view->string, string->len); | 377 view->string = g_string_set_size(view->string, string->len); |
376 view->string->len = 0; | 378 view->string->len = 0; |
377 GNT_WIDGET_SET_FLAGS(GNT_WIDGET(view), GNT_WIDGET_DRAWING); | 379 GNT_WIDGET_SET_FLAGS(GNT_WIDGET(view), GNT_WIDGET_DRAWING); |
378 | 380 |
652 fl |= gnt_color_pair(GNT_COLOR_NORMAL); | 654 fl |= gnt_color_pair(GNT_COLOR_NORMAL); |
653 | 655 |
654 return fl; | 656 return fl; |
655 } | 657 } |
656 | 658 |
657 void gnt_text_view_clear(GntTextView *view) | 659 static void reset_text_view(GntTextView *view) |
658 { | 660 { |
659 GntTextLine *line; | 661 GntTextLine *line; |
660 | 662 |
661 g_list_foreach(view->list, free_text_line, NULL); | 663 g_list_foreach(view->list, free_text_line, NULL); |
662 g_list_free(view->list); | 664 g_list_free(view->list); |
665 line = g_new0(GntTextLine, 1); | 667 line = g_new0(GntTextLine, 1); |
666 view->list = g_list_append(view->list, line); | 668 view->list = g_list_append(view->list, line); |
667 if (view->string) | 669 if (view->string) |
668 g_string_free(view->string, TRUE); | 670 g_string_free(view->string, TRUE); |
669 view->string = g_string_new(NULL); | 671 view->string = g_string_new(NULL); |
672 } | |
673 | |
674 void gnt_text_view_clear(GntTextView *view) | |
675 { | |
676 reset_text_view(view); | |
677 | |
678 g_list_foreach(view->tags, free_tag, NULL); | |
679 view->tags = NULL; | |
670 | 680 |
671 if (GNT_WIDGET(view)->window) | 681 if (GNT_WIDGET(view)->window) |
672 gnt_widget_draw(GNT_WIDGET(view)); | 682 gnt_widget_draw(GNT_WIDGET(view)); |
673 } | 683 } |
674 | 684 |
831 editor_end_cb(int status, gpointer data) | 841 editor_end_cb(int status, gpointer data) |
832 { | 842 { |
833 if (status == 0) { | 843 if (status == 0) { |
834 char *text = NULL; | 844 char *text = NULL; |
835 if (g_file_get_contents(pageditor.file, &text, NULL, NULL)) { | 845 if (g_file_get_contents(pageditor.file, &text, NULL, NULL)) { |
836 gnt_text_view_clear(pageditor.tv); | 846 reset_text_view(pageditor.tv); |
837 gnt_text_view_append_text_with_flags(pageditor.tv, text, GNT_TEXT_FLAG_NORMAL); | 847 gnt_text_view_append_text_with_flags(pageditor.tv, text, GNT_TEXT_FLAG_NORMAL); |
838 gnt_text_view_scroll(GNT_TEXT_VIEW(pageditor.tv), 0); | 848 gnt_text_view_scroll(GNT_TEXT_VIEW(pageditor.tv), 0); |
839 g_free(text); | 849 g_free(text); |
840 } | 850 } |
841 } | 851 } |