Weβll do some workaround working for me, check this out and please let me know.
Ext.EventManager.on(Ext.getBody(), 'keydown', focusListenerLogin, Ext.getBody()); Ext.EventManager.on(Ext.getBody(), 'keyup', focusListenerLogin, Ext.getBody()); Ext.EventManager.on(Ext.getBody(), 'keypress', focusListenerLogin, Ext.getBody()); Ext.EventManager.on(Ext.getBody(), 'focusin', focusListenerLogin, Ext.getBody()); function focusListenerLogin(e) { if(typeof Ext.WindowManager.getActive() !== 'undefined' && Ext.WindowManager.getActive() !== null) { var activeWinId = Ext.WindowManager.getActive().getId (); var obj = Ext.getCmp(activeWinId); var id = typeof obj.focusEl !=='undefined' ? obj.focusEl.id : obj.id; window.prevFocus; var dom = activeWinId; var components = []; Ext.Array.each(Ext.get(dom).query('*'), function(dom) { var cmp = Ext.getCmp(dom.id); if(cmp && cmp.isVisible()) { if (cmp && cmp.btnEl && cmp.btnEl.focusable()) components.push(cmp.btnEl); else if(cmp && cmp.inputEl && cmp.inputEl.focusable()) components.push(cmp.inputEl); } }); if (typeof obj != 'undefined' && obj.isVisible() && obj.el.id === activeWinId && (typeof e.keyCode!== 'undefined' ? e.keyCode === 9 : true) ) { var focused = document.activeElement; if (!focused || focused === document.body){ focused = null;} else if (document.querySelector) focused = document.querySelector(":focus"); if( typeof window.prevFocus !=='undefined' && window.prevFocus !== null && focused !== window.prevFocus && components.length>0 && window.prevFocus.id === components[components.length-1].id) { Ext.getCmp(id).focus(); window.prevFocus = document.activeElement; } else if(components.length==0 ) { Ext.getCmp(id).focus(); window.prevFocus = document.activeElement; } else window.prevFocus = focused !== null ? focused : window.prevFocus; } return false; } }
Logics
if the focus leaves the last element of the window component, it will be assigned to the first.
if there is no focusing element in the window, then the focus will remain only in the window.
Please let me know if this piece of code helps.
source share