From 37a54507af275fdfe85c8de395e88ab614987f11 Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Thu, 14 Nov 2013 00:51:04 +0100 Subject: [PATCH 1/2] playertracker: close all tooltips before markers are redrawn fixes tooltip fragments on firefox --- plugins/player-tracker.user.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index e9b5878a..932c5c02 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -91,11 +91,22 @@ window.plugin.playerTracker.setup = function() { window.plugin.playerTracker.stored = {}; +// force close all open tooltips before markers are cleared +window.plugin.playerTracker.closeIconTooltips = function() { + plugin.playerTracker.drawnTracesRes.eachLayer(function(layer) { + if ($(layer._icon)) { $(layer._icon).tooltip('close');} + }); + plugin.playerTracker.drawnTracesEnl.eachLayer(function(layer) { + if ($(layer._icon)) { $(layer._icon).tooltip('close');} + }); +} + window.plugin.playerTracker.zoomListener = function() { var ctrl = $('.leaflet-control-layers-selector + span:contains("Player Tracker")').parent(); if(window.map.getZoom() < window.PLAYER_TRACKER_MIN_ZOOM) { - window.plugin.playerTracker.drawnTracesEnl.clearLayers(); - window.plugin.playerTracker.drawnTracesRes.clearLayers(); + plugin.playerTracker.closeIconTooltips(); + plugin.playerTracker.drawnTracesEnl.clearLayers(); + plugin.playerTracker.drawnTracesRes.clearLayers(); ctrl.addClass('disabled').attr('title', 'Zoom in to show those.'); } else { ctrl.removeClass('disabled').attr('title', ''); @@ -404,6 +415,7 @@ window.plugin.playerTracker.handleData = function(data) { plugin.playerTracker.discardOldData(); plugin.playerTracker.processNewData(data); + plugin.playerTracker.closeIconTooltips(); plugin.playerTracker.oms.clearMarkers(); plugin.playerTracker.drawnTracesEnl.clearLayers(); plugin.playerTracker.drawnTracesRes.clearLayers(); From 1e35d027d929e2aa52bda469a4a455f6877347a4 Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Thu, 14 Nov 2013 01:05:32 +0100 Subject: [PATCH 2/2] playertracker: don't close tooltip on touchdevices...touchdevices don't have a tooltip for player markers --- plugins/player-tracker.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index 932c5c02..0e9bf789 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -104,7 +104,7 @@ window.plugin.playerTracker.closeIconTooltips = function() { window.plugin.playerTracker.zoomListener = function() { var ctrl = $('.leaflet-control-layers-selector + span:contains("Player Tracker")').parent(); if(window.map.getZoom() < window.PLAYER_TRACKER_MIN_ZOOM) { - plugin.playerTracker.closeIconTooltips(); + if (!window.isTouchDevice()) plugin.playerTracker.closeIconTooltips(); plugin.playerTracker.drawnTracesEnl.clearLayers(); plugin.playerTracker.drawnTracesRes.clearLayers(); ctrl.addClass('disabled').attr('title', 'Zoom in to show those.'); @@ -415,7 +415,7 @@ window.plugin.playerTracker.handleData = function(data) { plugin.playerTracker.discardOldData(); plugin.playerTracker.processNewData(data); - plugin.playerTracker.closeIconTooltips(); + if (!window.isTouchDevice()) plugin.playerTracker.closeIconTooltips(); plugin.playerTracker.oms.clearMarkers(); plugin.playerTracker.drawnTracesEnl.clearLayers(); plugin.playerTracker.drawnTracesRes.clearLayers();