the decorator adds four pixels to the outer widget's height. So when
your "resize" listener applies that height to the inner widget, the
outer widget has to grow by another four pixels to accommodate the inner
widget, the event is fired again and you've got your infinite loop.
Generally, you shouldn't have to manually adjust the inner widget's
size, qooxdoo's layout system can probably do that for you. Check out
the "flex" property of the HBox/VBox layouts, or the "edge" property of
the Canvas layout.