diff src/glyphs-gtk.c @ 691:1df69dc58840

[xemacs-hg @ 2001-12-13 20:53:20 by wmperry] Fix strange 'floating gutter tab' bug.
author wmperry
date Thu, 13 Dec 2001 20:53:21 +0000
parents 4d7fdf497470
children 02339d4ebed4
line wrap: on
line diff
--- 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);