Hi again, Just FYI -- I think I have found a solution to the layout problem I was seeing.
This might be useful info to anyone else who is using their own ajax layer (which they might have implemented before Qx included a bundled transport layer). The layout problem I was seeing seems to be fixed by invoking qx.ui.core.Widget.flushGlobalQueues(); immidiately before sending an ajax request, and again immidately after recieving an ajax reponse. To me this implies that the browsers' (tested in both IE 6 and FF 1.5) native ajax response handler interupts the thread of processing and can then ask Qx to render widgets out of sequence. Wierd... but it does seem to work so far :) In anycase, I don't think this is a bug in Qx code (except perhaps that it does not guard against this unlikely possibility?) Simon ----- Original Message ---- From: Simon Bull <[EMAIL PROTECTED]> To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net> Sent: Friday, 24 November, 2006 2:25:18 PM Subject: Re: [qooxdoo-devel] qx.ui.form.List layout problem in 0.6.2-pre (r4822) Hi Andreas, I have been trying to create an example that demostrates the problem -- however it turns out that it is not easy. I haven't yet been able to create a simple/synchronous test case that reproduces the bug. However, I have meanwhile observed in my application that if I click a widget which fetches a new list from the back-end (via ajax) the resulting list is not actually drawn until I next move the mouse. If I wait a few seconds before moving the mouse (and triggering the rendering of the list) I never see the layout problem. If I move the mouse constanly after clicking a widget which fetches a new list from the back-end (via ajax) I will sometimes see the layout problem. So it seems as thou if a list is drawn as a result of an asynch response, the layout problem can occur - but it doesn't always. I have tried to follow the qx source code thru to identify the problem. I can get as far as CanvasLayoutImpl.layoutChild_sizeX which them attempts to call: vChild._applyRuntimeWidth(vChild.getBoxWidth()); where vChild is a qx.ui.form.List instance, whose getBoxWidth() returns 431. However, I can't find the definition of _applyRuntimeWidth() anywhere. Where could it be hiding? Simon p.s. I think I will hold off logging a bug until I have confirmed 100% what the real problem is. ----- Original Message ---- From: Andreas Ecker <[EMAIL PROTECTED]> To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net> Cc: Simon Bull <[EMAIL PROTECTED]> Sent: Wednesday, 22 November, 2006 7:44:43 PM Subject: Re: [qooxdoo-devel] qx.ui.form.List layout problem in 0.6.2-pre (r4822) Hi Simon, thanks for the reporting this issue. Would you be so kind to enter a bug report into bugzilla at http://bugzilla.qooxdoo.org ? Please attach a test html that is derived from one of the example/test files so that it can be dropped into the demo section without modifications. Thanks, Andreas On Sun, 2006-11-19 at 14:51 -0800, Simon Bull wrote: > Hi All, > > I am having a problem laying out a qx.ui.form.List. I first noticed it in > source version r4343 - but today I updated to r4822 and am having the same > problem. > > The problem occurs intermittently when adding qx.ui.form.List of > qx.ui.form.ListItems to a CanvasLayout -- the 2nd area of a > qx.ui.splitpane.HorizontalSplitPane. > > It always works fine the first time you add children. However, if you want > to drop the list completely, and replace it with a new list it occassionally > (approximately one time in 6 attempts) fails, and you see the following error > messages on the console. > > Has anyone else seen this? Is there are known workaround or a bugfix? > > Thanks, > > Simon > > > > 040313 ERROR: qx.ui.basic.Terminator[617]: Modification of property "parent" > failed with exception: Error - Invalid 040329 WARN: > qx.ui.core.ClientDocument[29]: Want to render an invisible child: [object > qx.ui.basic.Terminator] -> omitting! > 040345 ERROR: qx.ui.layout.CanvasLayout[646]: Could not layout child [object > qx.ui.form.List] through layout handler: TypeError - 'this._style' is null or > not an object (#-2146823281) > 040360 ERROR: qx.ui.form.List[2945]: Could not layout child [object > qx.ui.form.ListItem] through layout handler: TypeError - 'this._style' is > null or not an object (#-2146823281) > 040376 ERROR: qx.ui.form.List[2945]: Could not layout child [object > qx.ui.form.ListItem] through layout handler: TypeError - 'this._style' is > null or not an object (#-2146823281) > 040376 ERROR: qx.ui.form.List[2945]: Could not layout child [object > qx.ui.form.ListItem] through layout handler: TypeError - 'this._style' is > null or not an object (#-2146823281) > 040376 ERROR: qx.ui.form.ListItem[2950]: Could not layout child [object > qx.ui.basic.Image] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040407 ERROR: qx.ui.form.ListItem[2950]: Could not post layout child [object > qx.ui.basic.Image]: TypeError - 'null' is null or not an object (#-2146823281) > 040407 ERROR: qx.ui.form.ListItem[2950]: Could not layout child [object > qx.ui.basic.Label] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040407 ERROR: qx.ui.form.ListItem[2950]: Could not post layout child [object > qx.ui.basic.Label]: TypeError - 'style' is null or not an object > (#-2146823281) > 040423 ERROR: qx.ui.form.ListItem[2955]: Could not layout child [object > qx.ui.basic.Image] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040438 ERROR: qx.ui.form.ListItem[2955]: Could not post layout child [object > qx.ui.basic.Image]: TypeError - 'null' is null or not an object (#-2146823281) > 040438 ERROR: qx.ui.form.ListItem[2955]: Could not layout child [object > qx.ui.basic.Label] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040454 ERROR: qx.ui.form.ListItem[2955]: Could not post layout child [object > qx.ui.basic.Label]: TypeError - 'style' is null or not an object > (#-2146823281) > 040454 ERROR: qx.ui.form.ListItem[2960]: Could not layout child [object > qx.ui.basic.Image] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040485 ERROR: qx.ui.form.ListItem[2960]: Could not post layout child [object > qx.ui.basic.Image]: TypeError - 'null' is null or not an object (#-2146823281) > 040485 ERROR: qx.ui.form.ListItem[2960]: Could not layout child [object > qx.ui.basic.Label] through layout handler: TypeError - 'this._style' is null > or not an object (#-2146823281) > 040485 ERROR: qx.ui.form.ListItem[2960]: Could not post layout child [object > qx.ui.basic.Label]: TypeError - 'style' is null or not an object > (#-2146823281) > 040501 ERROR: qx.event.handler.EventHandler[28]: Failed to handle mouse > event: TypeError - 'getParent()._getTargetNode()' is null or not an object > (#-2146823281) ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel Send instant messages to your online friends http://au.messenger.yahoo.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel Send instant messages to your online friends http://au.messenger.yahoo.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel