changeset 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 46874522858b
children cd697e94b3d4
files src/ChangeLog src/glyphs-gtk.c
diffstat 2 files changed, 23 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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  <wmperry@gnu.org>
+
+	* 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  <mta@arbortext.com>
 
 	* event-msw.c (slurper_free_shared_data_maybe): Free the pipe handle.
--- 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);