I am submitting a patch to gtk+ vs gtk+1.2.3. I realize this is old,
but I have additionally checked the patches (1.2.6 vs 1.2.3), and
the variables I am changing are not mentioned in them.

The bug:
struct GtkLayout has the following two elements:
  guint xoffset;
  guint yoffset;
as unsigned int, but the rest of the code seems to treat them as 
signed. eg. (highly abreviated)

gtk_layout_adjustment_changed (GtkAdjustment *adjustment,GtkLayout *layout) {
  layout->xoffset = (gint)layout->hadjustment->value;
  layout->yoffset = (gint)layout->vadjustment->value;
}

casts a float (layout->hadjustment->value) to gint before assigning to 
xoffset. other programs, eg. gnome canvas are capable of excercising
the bug.

The patch is very simple. It changes xoffset/yoffset from guint to gint
in gtklayout.h

hope this helps, and that i haven't missed anything.

seth
lytles@neaccess.com