For help with anything that CEGUI doesn't offer straight out-of-the-box, e.g.:- Implementation of new features, such as new Core classes, widgets, WindowRenderers, etc. ...- Modification of any existing features for specific purposes- Integration of CEGUI in new engines or frameworks and writing of new plugins (Renderer, Parser, ...) or modules

If I *do* call invalidate/render, it doesn't crash but I get some weird behavior. First, the returned size is 438 x ~1200, the width is right but the height should be close to 30. After some debugging, I saw that the text formatting/rendering components had split the string into dozens of lines, like having one character per line, which makes me think that it uses a very small width to format the string somewhere. It does appear alright though (it's rendered on two lines, as it should), if you ignore the huge white space at the bottom.

This very large height causes my ItemListbox to show the vertical scrollbar (its height is close to 300 px) but another strange thing happens: When I add a second item, it is not placed at +1200 but it overlaps the bottom part of the previous item. For some reason, it also causes both of them to re-wrap and become 3 lines each (maybe now it took the v-scrollbar into account and it hadn't before?).

Note that if I hack a fixed height into the getPixelSize() method (i.e. Sizef sz(0, 50); return sz;) then everything works right (scrollbar, wrapping, height, placement).

When the formatter tries to wrap the string (creating multiple lines, interally) in RenderedStringWordWrapper<T>::format(const Window* ref_wnd, const Sizef& area_size), area_size.d_width is -127.As a result, it keeps splitting the string into lines, trying to fit them in the available (none) width.

It is the size of dest_rect. However, dest_rect is not correct, the left and top dimensions are correct (x:127 and y:2) but right and bottom are zero, so the width ends up being -127.

I then realized that my WidgetLook (see below, ImagerySection "text") has the RightEdge set to be relative to the available space (scale=1, type=RightEdge) and this calculation is not working right.Changing it to a fixed size (i.e. AbsoluteDim value="300") worked perfectly, but was wrong because it doesn't extend to fill all available space.

From the way you describe this, it seems the issues are all caused by incorrect values when that RightEdge when it's set to scale="1" - and that pretty much seems like a bug in CEGUI.

Is the item / items added only at initialisation, or is content added after things are up and running? If you add the ItemListBox to a FrameWindow, and resize the FrameWindow, does it then calculate the right size, or is it always wrong? The answers to these questions will help narrow down the scope of this issue.

I've finally made some real progress. It seems that there are a few related problems and my code was triggering them randomly making it really hard to tell what's wrong.

I still need some help but now I have a simplified testcase!It's a small CEGUI app (CEGUI from Mercurial, OGRE 1.8, OIS) that shows 3 different problems. Get it here: https://docs.google.com/file/d/0ByfoGpl ... sp=sharing (~200KB .7z). There's no makefile, sorry for that.