Opened 9 years ago

Last modified 3 years ago

#12599 assigned defect

dijit.Editor in dojox.layout.TableContainer resize/layout bug — at Version 1

Reported by: patrickzope Owned by: Shane O'Sullivan
Priority: high Milestone: 1.14
Component: DojoX Layout Version: 1.6.0
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by bill)

When a dijit.Editor is placed in a dojox.layout.TableContainer, an exception is raised, because the editor's layout method expects a "_contentBox" attribute to be set on the instance, but in this case it is not (see attached test case).

The Editor seems to assume that the layout widget will call its resize method and pass in an argument; the TableContainer calls resize without passing in any arguments.

We've worked around this in our code with the following:

editor.resize = function () {
    dijit.layout._LayoutWidget.prototype.resize.apply(
        editor, arguments);
};

Change History (2)

Changed 9 years ago by patrickzope

Attachment: dijiteditorbug.html added

test case that demonstrates the bug

comment:1 Changed 9 years ago by bill

Component: DijitDojoX Layout
Description: modified (diff)
Owner: set to Shane O'Sullivan
Summary: dijit.Editor resize/layout bugdijit.Editor in dojox.layout.TableContainer resize/layout bug

Well I think the issue is that TableContainer is calling layout() on it's children, rather than calling resize(). Here's the code in TableContainer:

// Refresh the layout of any child widgets, allowing them to resize
// to their new parent.
dojo.forEach(children, function(child){
	if(typeof child.layout == "function") {
		child.layout();
	}
});
Note: See TracTickets for help on using tickets.