Mercurial > pidgin.yaz
diff src/gtkimhtml.c @ 2621:f8b02cf4af94
[gaim-migrate @ 2634]
i *really* wish i'd gotten to look this over before it got committed.
i'm getting the 16-byte leaks too. i haven't tracked it down yet but I have a pretty good idea of where they're coming from.
i wish i'd been able to look this over before it got committed.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 26 Oct 2001 22:58:17 +0000 |
parents | 8b84198651c9 |
children | 733471f39ac9 |
line wrap: on
line diff
--- a/src/gtkimhtml.c Fri Oct 26 20:06:22 2001 +0000 +++ b/src/gtkimhtml.c Fri Oct 26 22:58:17 2001 +0000 @@ -353,6 +353,9 @@ g_free (bit); } + if (imhtml->line) + g_list_free (imhtml->line); + while (imhtml->urls) { g_free (imhtml->urls->data); imhtml->urls = g_list_remove (imhtml->urls, imhtml->urls->data); @@ -3448,9 +3451,13 @@ void gtk_imhtml_clear (GtkIMHtml *imhtml) { + GtkLayout *layout; + g_return_if_fail (imhtml != NULL); g_return_if_fail (GTK_IS_IMHTML (imhtml)); + layout = GTK_LAYOUT (imhtml); + while (imhtml->bits) { GtkIMHtmlBit *bit = imhtml->bits->data; imhtml->bits = g_list_remove (imhtml->bits, bit); @@ -3490,6 +3497,12 @@ imhtml->selected_text = g_string_new (""); } + imhtml->sel_startx = 0; + imhtml->sel_starty = 0; + imhtml->sel_endx = 0; + imhtml->sel_endx = 0; + imhtml->sel_endchunk = NULL; + if (imhtml->tip_timer) { gtk_timeout_remove (imhtml->tip_timer); imhtml->tip_timer = 0; @@ -3500,14 +3513,37 @@ } imhtml->tip_bit = NULL; + if (imhtml->scroll_timer) { + gtk_timeout_remove (imhtml->scroll_timer); + imhtml->scroll_timer = 0; + } + gdk_window_set_cursor (GTK_LAYOUT (imhtml)->bin_window, imhtml->arrow_cursor); imhtml->x = 0; imhtml->y = TOP_BORDER; + imhtml->xsize = 0; imhtml->llheight = 0; imhtml->llascent = 0; + if (imhtml->line) + g_list_free (imhtml->line); imhtml->line = NULL; + layout->hadjustment->page_size = 0; + layout->hadjustment->page_increment = 0; + layout->hadjustment->lower = 0; + layout->hadjustment->upper = imhtml->x; + gtk_adjustment_set_value (layout->hadjustment, 0); + + layout->vadjustment->page_size = 0; + layout->vadjustment->page_increment = 0; + layout->vadjustment->lower = 0; + layout->vadjustment->upper = imhtml->y; + gtk_adjustment_set_value (layout->vadjustment, 0); + + gtk_signal_emit_by_name (GTK_OBJECT (layout->hadjustment), "changed"); + gtk_signal_emit_by_name (GTK_OBJECT (layout->vadjustment), "changed"); + if (GTK_WIDGET_REALIZED (GTK_WIDGET (imhtml))) gdk_window_clear (GTK_LAYOUT (imhtml)->bin_window); }