[Mapbender-commits] r8305 - trunk/mapbender/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Apr 5 05:15:52 EDT 2012


Author: kmq
Date: 2012-04-05 02:15:52 -0700 (Thu, 05 Apr 2012)
New Revision: 8305

Modified:
   trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
merge in fix for \#879

Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php	2012-04-05 09:12:37 UTC (rev 8304)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php	2012-04-05 09:15:52 UTC (rev 8305)
@@ -771,6 +771,7 @@
 var basepointDragActive = false;
 
 function handleBasepoint(obj,memberIndex, geometryIndex, ringIndex, pointIndex){
+
 	if (!(
 		mod_digitizeEvent == button_move || 
 		mod_digitizeEvent == button_insert || 
@@ -792,15 +793,19 @@
 	}
 	basepointPointIndex = pointIndex;
 	
+    // The eventhandlers get unbound before being bound again to ensure
+    // they are only called once - see http://trac.osgeo.org/mapbender/ticket/879 
 	if(mod_digitizeEvent == button_move){
 		mod_digitize_timeout();
 		basepointObject.style.cursor = 'move';
+		parent.$(basepointObject).unbind("mousedown", parent.frames[mod_digitize_elName].selectBasepoint);
 		parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].selectBasepoint);
 	}
 
 	if(mod_digitizeEvent == button_delete){
 		mod_digitize_timeout();
 		basepointObject.style.cursor = 'crosshair';
+		parent.$(basepointObject).unbind("mousedown", parent.frames[mod_digitize_elName].deleteBasepoint);
 		parent.$(basepointObject).bind("mousedown", parent.frames[mod_digitize_elName].deleteBasepoint);
 	}
 }
@@ -1686,7 +1691,7 @@
 								
 							}
 							if(isMoveOrInsertOrDelete) {
-								smPArray[smPArray.length] = " onmouseover='window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
+								smPArray[smPArray.length] = "onmouseover='window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
 							}
 							smPArray[smPArray.length] = ">";
 							if (isPolygon || isLine) {



More information about the Mapbender_commits mailing list