Ext.define('Ext.rtl.grid.RowEditor', { override: 'Ext.grid.RowEditor', setButtonPosition: function(btnEl, left){ if (this.getHierarchyState().rtl) { btnEl.rtlSetLocalXY(left, this.el.dom.offsetHeight - 1); } else { this.callParent(arguments); } }, // Workaround for http://code.google.com/p/chromium/issues/detail?id=174656 getLocalX: function() { var grid = this.editingPlugin.grid, view = grid.normalGrid ? grid.normalGrid.view : grid.view, viewSize = view.componentLayout.lastComponentSize, hasOverflow = viewSize.contentHeight > viewSize.height; // Only work back past the incorrect right origin if there is overflow, and we're not in a locking grid // (if we are, the RowEditor is rendered to the outer container) and we're in RTL mode and we have the // X origin bug. return hasOverflow && !grid.normalGrid && grid.getHierarchyState().rtl && Ext.supports.xOriginBug ? -Ext.getScrollbarSize().width : 0; } });