# HG changeset patch # User wmperry # Date 1008276801 0 # Node ID 1df69dc58840f9c9bc8308ffe2ab10b2645ef4bb # Parent 46874522858b77cfba3e2f75b75069280418752f [xemacs-hg @ 2001-12-13 20:53:20 by wmperry] Fix strange 'floating gutter tab' bug. diff -r 46874522858b -r 1df69dc58840 src/ChangeLog --- a/src/ChangeLog Mon Dec 10 07:43:34 2001 +0000 +++ b/src/ChangeLog Thu Dec 13 20:53:21 2001 +0000 @@ -1,3 +1,9 @@ +2001-12-13 William M. Perry + + * glyphs-gtk.c (gtk_map_subwindow): Make sure that we always call + gtk_fixed_put, even if the size allocations are the same. + (gtk_subwindow_instantiate): Fixed compilation warnings. + 2001-10-26 Mike Alexander * event-msw.c (slurper_free_shared_data_maybe): Free the pipe handle. diff -r 46874522858b -r 1df69dc58840 src/glyphs-gtk.c --- a/src/glyphs-gtk.c Mon Dec 10 07:43:34 2001 +0000 +++ b/src/glyphs-gtk.c Thu Dec 13 20:53:21 2001 +0000 @@ -1223,6 +1223,7 @@ assert (COLOR_SPECIFIERP (value)); value = Fspecifier_instance (value, domain, Qnil, Qnil); } + if (NILP (value)) continue; results = noseeum_cons (noseeum_cons (name, value), results); @@ -2019,7 +2020,7 @@ redisplay_output_subwindow */ static void gtk_map_subwindow (Lisp_Image_Instance *p, int x, int y, - struct display_glyph_area* dga) + struct display_glyph_area* dga) { assert (dga->width > 0 && dga->height > 0); @@ -2073,6 +2074,21 @@ } GTK_WIDGET_FLAGS(FRAME_GTK_TEXT_WIDGET (f)) = old_flags; } + else + { + if (IMAGE_INSTANCE_GTK_ALREADY_PUT(p)) + { + /* Do nothing... */ + } + else + { + /* Must make sure we have put the image at least once! */ + IMAGE_INSTANCE_GTK_ALREADY_PUT(p) = TRUE; + gtk_fixed_put (GTK_FIXED (FRAME_GTK_TEXT_WIDGET (f)), + wid, + -dga->xoffset, -dga->yoffset); + } + } if (!IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (p)) { @@ -2189,7 +2205,6 @@ /* This function can GC */ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); - Lisp_Object frame = DOMAIN_FRAME (domain); if (!DEVICE_GTK_P (XDEVICE (device))) gui_error ("Not a GTK device", device);