Opened 5 years ago

Closed 3 years ago

#18085 closed defect (patchwelcome)

dijit/place relies on element being a direct child of document body

Reported by: ddraper Owned by:
Priority: undecided Milestone: 1.13
Component: Dijit Version: 1.9.0
Keywords: Cc:
Blocked By: Blocking:


When using dijit/place the node to be placed is always moved (within the DOM) to be an immediate child of the document body element. This causes problems when you want to make a specific node run in a browsers full screen mode.

For example, if I create a widget that uses a menu bar containing a popup menu bar item and then make that widget run in full-screen mode, the menu bar and menu item will be visible, but the popup will never be shown because it is outside of the DOM node.

In theory this can be worked around by moving the element back to be a descendent of the widget's DOM node, but you cannot re-use the dijit/place around function because it will move it back again.

I understand that the place code works on the assumption that the placed node is "safe" as a child of the body because it cannot be "clipped" when the overflow is hidden, however - it should at least be possible to pass a boolean argument to say whether or not the node should be moved (with true being the default).

That way I could call place without the element being moved and handle overflow issues in my own code.

Change History (3)

comment:1 Changed 5 years ago by bill

See also #3300.

comment:2 Changed 5 years ago by bill

PS: I'm not against having the option but it's not quite as simple as just changing dijit/place. Presumably dijit/popup and dijit/_HasDropDown should make the option visible somehow.

comment:3 Changed 3 years ago by dylan

Milestone: tbd1.12
Resolution: patchwelcome
Status: newclosed

Given that no one has shown interest in creating a patch in more than a year, I'm closing this as patchwelcome. Please let us know if you would like to get involved in helping make this change to Dojo!

Note: See TracTickets for help on using tickets.