[Mapbender-commits] r8303 - branches/2.7/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Apr 5 05:10:13 EDT 2012


Author: kmq
Date: 2012-04-05 02:10:13 -0700 (Thu, 05 Apr 2012)
New Revision: 8303

Modified:
   branches/2.7/http/javascripts/mod_digitize_tab.php
Log:
fix for \#879

Modified: branches/2.7/http/javascripts/mod_digitize_tab.php
===================================================================
--- branches/2.7/http/javascripts/mod_digitize_tab.php	2012-04-04 12:00:23 UTC (rev 8302)
+++ branches/2.7/http/javascripts/mod_digitize_tab.php	2012-04-05 09:10:13 UTC (rev 8303)
@@ -770,7 +770,17 @@
 var basepointPointIndex = null;
 var basepointDragActive = false;
 
+var handleBasePointEnabled = true;
+var handleCounter=0;
+
+function disableHandleBasepoint(){
+    //console.log("disablehandling basepoint "+ handleBasePointEnabled);
+    //handleBasePointEnabled = true;
+
+}
+
 function handleBasepoint(obj,memberIndex, geometryIndex, ringIndex, pointIndex){
+
 	if (!(
 		mod_digitizeEvent == button_move || 
 		mod_digitizeEvent == button_insert || 
@@ -792,15 +802,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);
 	}
 }
@@ -851,6 +865,13 @@
 	var k = basepointRingIndex;
 	var l = basepointPointIndex;
 
+    console.log({
+        "MemberIndex": i,
+        "GeometryIndex": j,
+        "RingIndex": k,
+        "PointIndex": l
+    });
+
 	if (k != undefined) {
 		d.delAllPointsLike(d.getPoint(i, j, k, l));
 	}
@@ -1686,7 +1707,9 @@
 								
 							}
 							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] += " onmouseout='window.frames[\""+mod_digitize_elName+"\"].disableHandleBasepoint()';";
 							}
 							smPArray[smPArray.length] = ">";
 							if (isPolygon || isLine) {
@@ -1739,6 +1762,7 @@
 								}
 								if (isMoveOrInsertOrDelete) {
 									smPArray[smPArray.length] = " onmouseover='window.frames[\"" + mod_digitize_elName + "\"].handleBasepoint(this," + i + "," + j + "," + l + "," + m + ")' ;";
+								    smPArray[smPArray.length] += " onmouseout='window.frames[\""+mod_digitize_elName+"\"].disableHandleBasepoint()';";
 								}
 								smPArray[smPArray.length] = "></div>";
 								lastPaintedPoint = currentPointMap;



More information about the Mapbender_commits mailing list