Community
Participate
Working Groups
Reproduce in Controls Demo: "Composite"-Tab -> Button "Background Gradient". There might be a connection to the changes in Application.js done for the MultiCellWidget (Attachment 143158 [details]).
Created attachment 144841 [details] possible fix Okay, first of all: I don't think this bug has anything to do with the MultiCellWidget. (As i suggested above). I have no idea why this seems to work in IE sometimes, and then not. The problem is that in IE the inner div of the widget (for complex borders) has no size by default. Why Qooxdoo does that, i have no idea. If i set its width and height to 100% (as done in this patch), the gradient works fine. HOWEVER: When this patch is applied, the combo box in the "composite"-tab of the controls demo is layouted incorrectly (again, IE only). So we should not commit the changes until that problem is fixed aswell.
Okay, it seems the patch breaks the layout of almost all widgets that have a complex border, so it wasn't just a bug in the combo box. Back to square one!
Now there are two ways we could go: Either find out why setting the inner div to 100% goes so horribly wrong, or find another solution altogether. For exaple we could temporarily enable overflow on the inner div or always use the layout method that is used when gfx-borders are activated, but both are more workaround than actual solutions to the problem.
Created attachment 144926 [details] Real fix This should solve the problem for good. I finally found out why it works sometimes, and sometimes not. Other than most browsers, in IE the inner divs dimension are actually set with the layout flush. As gradients are mostly set BEFORE the divs are created, the layout flush has not yet happend when prepareEnhancedBorder is called. In this cases it worked. If the gradient is after the widget has been layouted, the inner div is not layouted until the dimensions are changed. The patch simply adds width and height to the queue after prepareEnhancedBorder is called.
Commited patch in CVS HEAD.