Ext.define('uas.main.MainMenu', { extend: 'uas.panel.Floating', xtype: 'mainmenu', initComponent: function() { var me = this; me.callParent(arguments); me.addEvents(); }, addEvents: function() { var me = this; Ext.getDoc().on({ mousemove: me.onViewMouseMove, scope: me }); }, removeEvents: function() { var me = this; Ext.getDoc().un('mousemove', me.onViewMouseMove, me); }, onViewMouseMove: function(e) { var me = this, x = e.getX(), y = e.getY(), hBorder = me.align == 'left' ? (x <= 1) : (x >= Ext.getViewportWidth() - 1), vBorder = me.rendered ? (y >= me.getPosition(true)[1]) : (y >= (me.y || 0)); if (hBorder && vBorder && me.isHidden()) { me.show(); } } });