r1634 - branches/bxe_2_0/mozile

[email protected] Wed, 15 Nov 2006 17:05:03 +0100 (CET)
Newsgroups gmane.editors.bitflux.cvs
Message-ID <[email protected]>
Author: chregu
Date: Wed Nov 15 17:05:02 2006
New Revision: 1634

Modified:
   branches/bxe_2_0/mozile/mozCE.js
   branches/bxe_2_0/mozile/mozilekb.js
Log:
Fix bug #304
cursor missing if first td is deleted with backspace


Modified: branches/bxe_2_0/mozile/mozCE.js
==============================================================================
--- branches/bxe_2_0/mozile/mozCE.js	(original)
+++ branches/bxe_2_0/mozile/mozCE.js	Wed Nov 15 17:05:02 2006
@@ -235,9 +235,7 @@
 				parpar.normalize();
 				var _h = par.XMLNode._htmlnode;
 				
-				var _pref = _h.previousSibling;
-				_h.parentNode.removeChild(_h);
-				
+				var _pref = bxe_goToNextNode(cssr,true);
 				if (_pref && _pref.nodeType == 1) {_pref = _pref.lastChild;}
 				if (_pref && _pref.nodeValue) {
 					sel.collapse(_pref,_pref.nodeValue.length);

Modified: branches/bxe_2_0/mozile/mozilekb.js
==============================================================================
--- branches/bxe_2_0/mozile/mozilekb.js	(original)
+++ branches/bxe_2_0/mozile/mozilekb.js	Wed Nov 15 17:05:02 2006
@@ -454,43 +454,7 @@
 		}
 
 		
-		
-		if (cssr.startContainer.nodeType != 1) {
-			var node = cssr.startContainer.parentNode;
-		} else {
-			var node = cssr.startContainer;
-		}
-		var walker = document.createTreeWalker(
-		document.documentElement, NodeFilter.SHOW_ELEMENT,
-		null, 
-		true);
-		
-		walker.currentNode = node;
-		
-		
-		if (event.shiftKey) {
-			node =   walker.previousNode();
-		} else {
-			node =   walker.nextNode();
-		}
-		do {
-			if (node.userModifiable && node.XMLNode && ( node.XMLNode.canHaveText || node.hasAttribute("__bxe_attribute"))) {
-				try {
-					sel.collapse(node.firstChild,0);
-				} catch (e) {
-					node.appendChild(node.ownerDocument.createTextNode(" "));
-					sel.collapse(node.firstChild,0);
-				}
-				bxe_updateXPath(node);
-				return true;
-				break;
-			}
-			if (event.shiftKey) {
-				node =   walker.previousNode();
-			} else { 
-				node =   walker.nextNode();
-			}
-		} while(node);
+		bxe_goToNextNode(cssr,event.shiftKey);
 		//ip.insertCharacter(CHARCODE_SPACE); // POST05: may change to insert a set of spaces
 		
 		return true;
@@ -704,3 +668,45 @@
 		}
 		return true;
 }
+
+function bxe_goToNextNode(cssr,shift) {
+	
+	if (cssr.startContainer.nodeType != 1) {
+		var node = cssr.startContainer.parentNode;
+	} else {
+		var node = cssr.startContainer;
+	}
+	var walker = document.createTreeWalker(
+	document.documentElement, NodeFilter.SHOW_ELEMENT,
+	null, 
+	true);
+	
+	walker.currentNode = node;
+	
+	
+	if (shift) {
+		node =   walker.previousNode();
+	} else {
+		node =   walker.nextNode();
+	}
+	var sel=window.getSelection();
+	do {
+		if (node.userModifiable && node.XMLNode && ( node.XMLNode.canHaveText || node.hasAttribute("__bxe_attribute"))) {
+			try {
+				sel.collapse(node.firstChild,0);
+			} catch (e) {
+				node.appendChild(node.ownerDocument.createTextNode(" "));
+				sel.collapse(node.firstChild,0);
+			}
+			bxe_updateXPath(node);
+			return node;
+			break;
+		}
+		if (shift) {
+			node =   walker.previousNode();
+		} else { 
+			node =   walker.nextNode();
+		}
+	} while(node);
+	
+}
-- 
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs