Ext.define('Ext.rtl.dom.Element_insertion', { override: 'Ext.dom.Element', wrap: function() { var parent = this.parent(), rtlCls = Ext.baseCSSPrefix + 'rtl', ltrCls = Ext.baseCSSPrefix + 'ltr', wrapEl = this.callParent(arguments), cls; // if the parentNode of the element being wrapped has the "x-rtl" or "x-ltr" css // class, then add that class to the wrapper as well. This ensures that descendant // and child selectors still apply e.g. ".x-rtl > .x-foo" or ".x-ltr .x-foo" if (parent.hasCls(rtlCls)) { cls = rtlCls; } else if (parent.hasCls(ltrCls)) { cls = ltrCls; } if (cls) { // superclass method may return dom, so use fly() to access the wrap el Ext.fly(wrapEl, '_wrap').addCls(cls); } return wrapEl; } });