diff --git a/src/core/controller/controller.layer.js b/src/core/controller/controller.layer.js index 98470c5a9..6887603f7 100644 --- a/src/core/controller/controller.layer.js +++ b/src/core/controller/controller.layer.js @@ -15,7 +15,10 @@ BI.LayerController = BI.inherit(BI.Controller, { this.layerManager = {}; this.layouts = {}; this.zindex = BI.zIndex_layer; - BI.Resizers.add("layerController" + BI.uniqueId(), BI.bind(this._resize, this)); + }, + + _initResizer: function () { + this.resizer = BI.Resizers.add("layerController" + BI.uniqueId(), BI.bind(this._resize, this)); }, _resize: function () { @@ -38,6 +41,7 @@ BI.LayerController = BI.inherit(BI.Controller, { }, create: function (name, from, op, context) { + BI.isNull(this.resizer) && this._initResizer(); if (this.has(name)) { return this.get(name); } diff --git a/src/core/controller/controller.resizer.js b/src/core/controller/controller.resizer.js index a471cebdf..900bd3927 100644 --- a/src/core/controller/controller.resizer.js +++ b/src/core/controller/controller.resizer.js @@ -5,18 +5,20 @@ * @class */ BI.ResizeController = BI.inherit(BI.Controller, { + init: function () { - var self = this; this.resizerManger = {}; - var fn = BI.debounce(function (ev) { - // if (BI.isWindow(ev.target)) { + }, + + _initResizeListener: function () { + var self = this; + this.resizeHandler = BI.debounce(function (ev) { self._resize(ev); - // } }, 30); if ("onorientationchange" in _global) { - _global.onorientationchange = fn; + _global.onorientationchange = this.resizeHandler; } else { - BI.Widget._renderEngine.createElement(_global).resize(fn); + BI.Widget._renderEngine.createElement(_global).resize(this.resizeHandler); } }, @@ -34,13 +36,14 @@ BI.ResizeController = BI.inherit(BI.Controller, { } if (BI.isFunction(resizer)) { resizer(ev); - return; } }); }, add: function (name, resizer) { var self = this; + BI.isNull(this.resizeHandler) && this._initResizeListener(); + if (this.has(name)) { return this; }