rem: menu.setRight(this.getRight()); 
add: var right = this.getRight(); if (right === null) {  var d = this.getTopLevelWidget().getDocumentElement();   right = d.width - this.getWidth(); } menu.setRight(right); 
context: qx.Proto._toggleColumnVisibilityMenu = function() {  if (this._columnVisibilityMenu == null || !this._columnVisibilityMenu.isSeeable()) {    // Show the menu    // Create the new menu    var menu = new qx.ui.menu.Menu;    menu.addEventListener(qx.constant.Event.DISAPPEAR, function(evt) {      this._columnVisibilityMenuCloseTime = new Date().getTime();    }, this);    var tableModel = this.getTableModel();    var columnModel = this.getTableColumnModel();    for (var x = 0; x < columnModel.getOverallColumnCount(); x++) {      var col = columnModel.getOverallColumnAtX(x);      var visible = columnModel.isColumnVisible(col);      var cmd = { col:col }      var bt = new qx.ui.menu.MenuCheckBox(tableModel.getColumnName(col), null, visible);      var handler = this._createColumnVisibilityCheckBoxHandler(col);      bt._handler = handler;      bt.addEventListener("execute", handler, this);      menu.add(bt);    }    menu.setParent(this.getTopLevelWidget());    this._columnVisibilityMenu = menu;    // Show the menu    var btElem = this._columnVisibilityBt.getElement();    menu.setTop(qx.dom.DomLocation.getClientBoxBottom(btElem));    menu.setRight(this.getRight());    menu.show();  } else {    // hide the menu    menu.hide();    this._cleanupColumnVisibilityMenu();  }}
meta: 1005	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1005/f40222850a5d222a3372bad0065b9a23b86ae0da/Table.js/clean/qooxdoo/source/script/qx/ui/table/Table.js