X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/src/widgets/menu/Menu.js diff --git a/src/widgets/menu/Menu.js b/src/widgets/menu/Menu.js index ddf0e842..014ba5e2 100644 --- a/src/widgets/menu/Menu.js +++ b/src/widgets/menu/Menu.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.menu.Menu @@ -294,7 +294,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { var items = this.items; for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ var item = items.get(i); - if(!item.disabled && (item.canActivate || item.isFormField)){ + if(item.isVisible() && !item.disabled && (item.canActivate || item.isFormField)){ this.setActiveItem(item, false); return item; } @@ -433,6 +433,10 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { }else{ max = this.getHeight(); } + // Always respect maxHeight + if (this.maxHeight){ + max = Math.min(this.maxHeight, max); + } if(full > max && max > 0){ this.activeMax = max - this.scrollerHeight * 2 - this.el.getFrameWidth('tb') - Ext.num(this.el.shadowOffset, 0); this.ul.setHeight(this.activeMax); @@ -545,8 +549,8 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { return c; }, - applyDefaults : function(c){ - if(!Ext.isString(c)){ + applyDefaults : function(c) { + if (!Ext.isString(c)) { c = Ext.menu.Menu.superclass.applyDefaults.call(this, c); var d = this.internalDefaults; if(d){ @@ -562,10 +566,10 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { }, // private - getMenuItem : function(config){ - if(!config.isXType){ - if(!config.xtype && Ext.isBoolean(config.checked)){ - return new Ext.menu.CheckItem(config) + getMenuItem : function(config) { + if (!config.isXType) { + if (!config.xtype && Ext.isBoolean(config.checked)) { + return new Ext.menu.CheckItem(config); } return Ext.create(config, this.defaultType); } @@ -576,7 +580,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { * Adds a separator bar to the menu * @return {Ext.menu.Item} The menu item that was added */ - addSeparator : function(){ + addSeparator : function() { return this.add(new Ext.menu.Separator()); }, @@ -585,7 +589,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { * @param {Mixed} el The element or DOM node to add, or its id * @return {Ext.menu.Item} The menu item that was added */ - addElement : function(el){ + addElement : function(el) { return this.add(new Ext.menu.BaseItem({ el: el })); @@ -596,7 +600,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { * @param {Ext.menu.Item} item The menu item to add * @return {Ext.menu.Item} The menu item that was added */ - addItem : function(item){ + addItem : function(item) { return this.add(item); }, @@ -605,7 +609,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { * @param {Object} config A MenuItem config object * @return {Ext.menu.Item} The menu item that was added */ - addMenuItem : function(config){ + addMenuItem : function(config) { return this.add(this.getMenuItem(config)); },