From 41596d808be0987d8b3b6826153837a7e6f91be5 Mon Sep 17 00:00:00 2001 From: Marc Jansen Date: Tue, 26 May 2015 22:23:23 +0200 Subject: [PATCH] Add method to bind bluring on mouseout/focusout --- src/ol/control/control.js | 19 +++++++++++++++++++ src/ol/control/fullscreencontrol.js | 7 +------ src/ol/control/overviewmapcontrol.js | 7 +------ src/ol/control/rotatecontrol.js | 7 +------ src/ol/control/zoomcontrol.js | 7 +------ src/ol/control/zoomtoextentcontrol.js | 7 +------ 6 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/ol/control/control.js b/src/ol/control/control.js index ead9a74b8e..717ff3facb 100644 --- a/src/ol/control/control.js +++ b/src/ol/control/control.js @@ -3,6 +3,7 @@ goog.provide('ol.control.Control'); goog.require('goog.array'); goog.require('goog.dom'); goog.require('goog.events'); +goog.require('goog.events.EventType'); goog.require('ol.MapEventType'); goog.require('ol.Object'); @@ -78,6 +79,24 @@ ol.control.Control = function(options) { goog.inherits(ol.control.Control, ol.Object); +/** + * Bind a listener that blurs the passed element on any mouseout- or + * focusout-event. + * + * @param {!Element} button The button which shall blur on mouseout- or + * focusout-event. + * @protected + */ +ol.control.Control.bindMouseOutFocusOutBlur = function(button) { + goog.events.listen(button, [ + goog.events.EventType.MOUSEOUT, + goog.events.EventType.FOCUSOUT + ], /** @this {Element} */ function() { + this.blur(); + }, false); +}; + + /** * @inheritDoc */ diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index d36c649745..e5671e7518 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -67,12 +67,7 @@ ol.control.FullScreen = function(opt_options) { goog.events.listen(button, goog.events.EventType.CLICK, this.handleClick_, false, this); - goog.events.listen(button, [ - goog.events.EventType.MOUSEOUT, - goog.events.EventType.FOCUSOUT - ], function() { - this.blur(); - }, false); + ol.control.Control.bindMouseOutFocusOutBlur(button); goog.events.listen(goog.global.document, goog.dom.fullscreen.EventType.CHANGE, diff --git a/src/ol/control/overviewmapcontrol.js b/src/ol/control/overviewmapcontrol.js index aede825f0f..0e883cc9c0 100644 --- a/src/ol/control/overviewmapcontrol.js +++ b/src/ol/control/overviewmapcontrol.js @@ -90,12 +90,7 @@ ol.control.OverviewMap = function(opt_options) { goog.events.listen(button, goog.events.EventType.CLICK, this.handleClick_, false, this); - goog.events.listen(button, [ - goog.events.EventType.MOUSEOUT, - goog.events.EventType.FOCUSOUT - ], function() { - this.blur(); - }, false); + ol.control.Control.bindMouseOutFocusOutBlur(button); var ovmapDiv = goog.dom.createDom(goog.dom.TagName.DIV, 'ol-overviewmap-map'); diff --git a/src/ol/control/rotatecontrol.js b/src/ol/control/rotatecontrol.js index 881587481b..9b6d6ca9eb 100644 --- a/src/ol/control/rotatecontrol.js +++ b/src/ol/control/rotatecontrol.js @@ -60,12 +60,7 @@ ol.control.Rotate = function(opt_options) { goog.events.listen(button, goog.events.EventType.CLICK, ol.control.Rotate.prototype.handleClick_, false, this); - goog.events.listen(button, [ - goog.events.EventType.MOUSEOUT, - goog.events.EventType.FOCUSOUT - ], function() { - this.blur(); - }, false); + ol.control.Control.bindMouseOutFocusOutBlur(button); var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' + ol.css.CLASS_CONTROL; diff --git a/src/ol/control/zoomcontrol.js b/src/ol/control/zoomcontrol.js index d9ec25bb8d..8384ecdb4c 100644 --- a/src/ol/control/zoomcontrol.js +++ b/src/ol/control/zoomcontrol.js @@ -50,12 +50,7 @@ ol.control.Zoom = function(opt_options) { goog.events.EventType.CLICK, goog.partial( ol.control.Zoom.prototype.handleClick_, delta), false, this); - goog.events.listen(inElement, [ - goog.events.EventType.MOUSEOUT, - goog.events.EventType.FOCUSOUT - ], function() { - this.blur(); - }, false); + ol.control.Control.bindMouseOutFocusOutBlur(inElement); var outElement = goog.dom.createDom(goog.dom.TagName.BUTTON, { 'class': className + '-out', diff --git a/src/ol/control/zoomtoextentcontrol.js b/src/ol/control/zoomtoextentcontrol.js index 61dd0fe5c4..6499d786fd 100644 --- a/src/ol/control/zoomtoextentcontrol.js +++ b/src/ol/control/zoomtoextentcontrol.js @@ -43,12 +43,7 @@ ol.control.ZoomToExtent = function(opt_options) { goog.events.listen(button, goog.events.EventType.CLICK, this.handleClick_, false, this); - goog.events.listen(button, [ - goog.events.EventType.MOUSEOUT, - goog.events.EventType.FOCUSOUT - ], function() { - this.blur(); - }, false); + ol.control.Control.bindMouseOutFocusOutBlur(button); var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' + ol.css.CLASS_CONTROL;