From 7a4e3aa323952c7bd6673cab33bd853a164db127 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Jul 2012 21:21:38 +0200 Subject: [PATCH] Listen for target resizes in ol.MapRenderer --- src/ol/maprenderer.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/ol/maprenderer.js b/src/ol/maprenderer.js index 4231062259..8c3a745f42 100644 --- a/src/ol/maprenderer.js +++ b/src/ol/maprenderer.js @@ -2,6 +2,8 @@ goog.provide('ol.MapRenderer'); goog.require('goog.array'); goog.require('goog.events'); +goog.require('goog.events.Event'); +goog.require('goog.events.EventType'); goog.require('goog.object'); goog.require('ol.Array'); goog.require('ol.Camera'); @@ -38,6 +40,12 @@ ol.MapRenderer = function(target, opt_values) { */ this.target_ = target; + /** + * @private + * @type {goog.math.Size} + */ + this.size_ = new goog.math.Size(target.clientWidth, target.clientHeight); + /** * @private * @type {Array.} @@ -56,6 +64,9 @@ ol.MapRenderer = function(target, opt_values) { */ this.layerRenderers_ = {}; + goog.events.listen(target, goog.events.EventType.RESIZE, + this.handleTargetResize, false, this); + goog.events.listen( this, ol.Object.getChangedEventType(ol.MapRendererProperty.CAMERA), this.handleCameraChanged, false, this); @@ -105,6 +116,15 @@ ol.MapRenderer.prototype.getProjection = function() { }; +/** + * @protected + * @return {goog.math.Size} Size. + */ +ol.MapRenderer.prototype.getSize = function() { + return this.size_; +}; + + /** * @return {HTMLDivElement} Target. */ @@ -219,6 +239,17 @@ ol.MapRenderer.prototype.handleLayersChanged = function() { }; +/** + * @param {goog.events.Event} event Event. + * @protected + */ +ol.MapRenderer.prototype.handleTargetResize = function(event) { + goog.asserts.assert(event.target == this.target_); + this.size_.width = this.target_.clientWidth; + this.size_.height = this.target_.clientHeight; +}; + + /** * @param {ol.Camera} camera Camera. */