diff src/gtkhtml.c @ 536:c9f994ea5833

[gaim-migrate @ 546] smileys wrap now. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 27 Jul 2000 18:21:01 +0000
parents 5bf71b39cba2
children d050f88321a1
line wrap: on
line diff
--- a/src/gtkhtml.c	Thu Jul 27 17:48:15 2000 +0000
+++ b/src/gtkhtml.c	Thu Jul 27 18:21:01 2000 +0000
@@ -2326,7 +2326,7 @@
 		if (hb->type == HTML_BIT_PIXMAP)
 		{
 
-			gtk_html_add_pixmap(html, hb->pm, hb->fit);
+			gtk_html_add_pixmap(html, hb->pm, hb->fit, hb->newline);
 
 			g_free(hb);
 
@@ -2687,17 +2687,25 @@
 }
 
 
-void gtk_html_add_pixmap(GtkHtml * html, GdkPixmap * pm, int fit)
+void gtk_html_add_pixmap(GtkHtml * html, GdkPixmap * pm, int fit, int newline)
 {
 	GtkHtmlBit *last_hb;
 	GtkHtmlBit *hb = g_new0(GtkHtmlBit, 1);
 	GdkWindowPrivate *private = (GdkWindowPrivate *) pm;
+	int width, height;
 
 	last_hb = (GtkHtmlBit *) g_list_last(html->html_bits)->data;
 
 	/* make sure pixmaps drop down a line after a <BR> */
 	if (last_hb->newline)
 		html->current_y += private->height + 2;
+
+	/* wrap pixmaps */
+	gdk_window_get_size(html->html_area, &width, &height);
+	if ((html->current_x + private->width) >= width) {
+		html->current_y += private->height + 2;
+		html->current_x = 0;
+	}
 			
 	hb->fit = fit;
 	hb->x = html->current_x;
@@ -2716,7 +2724,7 @@
 	hb->uline = 0;
 	hb->strike = 0;
 	hb->was_selected = 0;
-	hb->newline = 0;
+	hb->newline = newline;
 	hb->pm = pm;
 
 	if (html->current_x == BORDER_WIDTH)
@@ -2730,6 +2738,9 @@
 
 	gtk_html_draw_bit(html, hb, 1);
 
+	if (hb->newline)
+		html->current_x = 0;
+
 	html->html_bits = g_list_append(html->html_bits, hb);