I'm trying to add a right-click (context) menu to a grid that is a direct child of a Tab ContentPane. The tab is fixed size, and the number of rows in the grid is variable, depending on the user's selections on other tabs. Often the number of rows will not be sufficient to completely fill the content pane, in which case there is a blank area underneath the grid data. I want the right-click menu to appear only if the click is actually on one of the rows. Following the example in the test page dojox/grid/tests/test_grid_tooltip_menu.html I declared my dijit.Menu and bound it to the grid's domNode using bindDomNode().
At first I was getting the right click menu only in the blank area, and not on the rows at all, until I discovered that you must override the grid's onCellContextMenu() or onRowContextMenu() (which one depends on what exactly you wish to achieve), since the default methods stop the event from bubbling to the Menu. Now I can get the context menu on the rows area too, but I cannot work out how to stop it from showing in the blank area. If I intercept the grid's oncontextmenu event, I do not know how to reliably work out whether the click is in the data rows, since it is a raw DOM event without the extra cell/row information that Grid supplies. I also tried binding to the grid's viewsNode node, but that made no difference.
Looking through the code and seeing how the calls to onCellContextMenu and onRowContextMenu are generated, it seems I might be able to achieve my required effect by binding to the individual views' contentNodes, but, while this might work for the simple grid I am currently working on, I do not really want to try it for my other grid where the structure is dynamically changed depending on user selections. Another possible solution might be not to bind the menu to any DOM node, but rather to put the call to display it in the onRowContextMenu() override method. However, I see that the binDomNode() method also binds other events, so I am afraid I might break something.
Any advice on whether there is a specific node I could bind to for the row area, or what workaround I can use would be greatly appreciated. (N.B. I'm stuck with using IE6, and this occurs with both Dojo 1.0.2 and 1.1.0)

Update & partial workaround
It is possible to stop the menu appearing in the blank area by specifying autoHeight="true" in the Grid's declaration. However:
i) this messes up the scroll bars when there are enough rows to fill the tab;
ii) the menu still appears on the grid scroll bars themselves (this happens even when there are sufficient rows to fill the tab, whatever the autoHeight setting).
I have had success with not binding the Menu to the grid, but rather calling the Menu's _openMyself() method from the onRowContextMenu handler. However, in order for the popup to appear the correct place in relation to the mouse click, you must also set the menu's _contextMenuWithMouse property to true before the call. I suspect this breaks the keyboard accessibility, though.
Enhancement request logged
I have logged ticket #6810 for the Grid to be enhanced to allow simpler setting of a dijit.Menu context menu to appear only on the actual rows.