Bugs and patches to the Xew 4.0 release

This document will list the upcoming changes to the latest released Xew version. Usually these changes are useful only for those who are "pushing the limits" of the widgets. The changes and patches here will be reasonably stable and will most likely be included into the next release. But, beware, this is not 100% guaranteed.

XeRasterDisplay: patch #1
not a bug, but adds a new programmatic function XeRasterDisplay to the XeRaster widget. Patches the files Raster.h and Raster.c in the Xew directory. The XeRasterDisplay description is already included in the documentation.
BadMatch error from the text selection highlighting: patch #2
when doing selections with mouse and crossing the columns, you might get something like:
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  59 (X_SetClipRectangles)
  Serial number of failed request:  3109
  Current serial number in output stream:  3145
This is caused by a typing error in the TextEd.c/XeUpdateTextRegion function. The patch modifies XeTextEd.c and fixes this bug.

Note, even after this, the selection highlighting is not shown correctly in a multicolumn layout, when you select across columns. However, the selected range is correct even in that case.

Unmanaged children and XeFrame: patch #3
Frame.c/MaximizeChildren may deference NULL pointer when the child is unmanaged.

This patch is only needed if your application uses XeFrame and plays with managed status of the XeFrame children.

Interlaced GIF bug: patch #4
A really embarrashing bug in handling of interlaced images in RasterGIF.c. If you load more than one interlaced GIF in your application, the bug will corrupt memory.

The code used a static variable to flag initialization. Once used the code never initialized for other interlaced GIF's. (This fix is a minimal quick hack, as I am not going to get fancy with the GIF format at this stage).

You definitely need this patch if any of your GIFs are in interlaced format.

Two fixes to the Xew Printing: patch #5
  1. XePrint was not supposed to print unmanaged widgets. However, it only tested the managed status of indidual widgets, not whether widget had unmanaged ancestor. The fix is that in print preparation phase, the unmanaged subtrees are not "cloned" at all (Xew/Print.c modified). (NOTE: this applies only to "interior" widgets, the top level widget directly given to the XePrint can be either managed or unmanaged).
  2. If the widget tree to be printed included widgets whose window was InputOnly, Xew/GetImage.c produced bad match error. The fix is to do nothing with InputOnly windows.

This fix is only needed, if you are using printing and can actually run into the described special conditions.

xTranslation and yTranslation: no patch yet
the xTranslation and yTranslation resources were primarily introduced, because the printing support needed such feature. They were also intended to be useful for other purposes.

However, it seems that the expose handling, when either of these has non-default value, is not doing the correct thing. Fix will be available at some later point.


msa