diff --git a/apps/common/main/lib/component/Window.js b/apps/common/main/lib/component/Window.js index 5b2d2f430..ce8de1c2c 100644 --- a/apps/common/main/lib/component/Window.js +++ b/apps/common/main/lib/component/Window.js @@ -265,8 +265,10 @@ define([ var top = main_geometry.top + Math.floor((parseInt(main_height) - parseInt(win_height)) / 2); var left = Math.floor((parseInt(main_width) - parseInt(win_width)) / 2); - this.$window.css('left',left); - this.$window.css('top',top); + this.$window.css({ + left: left < 0 ? 0 : left, + top: top < 0 ? 0 : top + }); } function _setVisible() { @@ -355,6 +357,23 @@ define([ } } + function _onResizeMove(){ + var main_geometry = _readDocumetGeometry(), + main_width = main_geometry.width, + main_height = main_geometry.height, + win_height = this.getHeight(), + win_width = this.getWidth(), + top = this.getTop(), + left = this.getLeft(); + + top = top + win_height > main_height ? main_height - win_height : top; + left = left + win_width > main_width ? main_width - win_width : left; + + this.$window.css({ + left: left < 0 ? 0 : left, + top: top < 0 ? 0 : top + }); + } /* window resize functions */ function _resizestart(event) { @@ -658,7 +677,7 @@ define([ this.$window.find('.header').on('mousedown', this.binding.dragStart); this.$window.find('.tool.close').on('click', _.bind(doclose, this)); this.$window.find('.tool.help').on('click', _.bind(dohelp, this)); - + $(window).on('resize', _.bind(_onResizeMove, this)); if (!this.initConfig.modal) Common.Gateway.on('processmouse', _.bind(_onProcessMouse, this)); } else {