r1619 - branches/bxe_2_0/mozile

[email protected] Thu, 9 Nov 2006 06:58:48 +0100 (CET)
Newsgroups gmane.editors.bitflux.cvs
Message-ID <[email protected]>
Author: chregu
Date: Thu Nov  9 06:58:46 2006
New Revision: 1619

Modified:
   branches/bxe_2_0/mozile/mozCE.js
   branches/bxe_2_0/mozile/mozilekb.js
Log:
some more selection fixes

Modified: branches/bxe_2_0/mozile/mozCE.js
==============================================================================
--- branches/bxe_2_0/mozile/mozCE.js	(original)
+++ branches/bxe_2_0/mozile/mozCE.js	Thu Nov  9 06:58:46 2006
@@ -349,6 +349,8 @@
 		if (xmlnode.nodeType == 2) {
 			//FIXME 2.0
 			//xmlnode._node.value =  xmlnode._node.ownerElement.getContent();
+			cssr.extractContentsByCSS();
+			xmlnode.nodeValue =  this.anchorNode.nodeValue;
 		} else {
 			var _position = bxe_getChildPosition(this.anchorNode);
 			

Modified: branches/bxe_2_0/mozile/mozilekb.js
==============================================================================
--- branches/bxe_2_0/mozile/mozilekb.js	(original)
+++ branches/bxe_2_0/mozile/mozilekb.js	Thu Nov  9 06:58:46 2006
@@ -474,7 +474,7 @@
 			node =   walker.nextNode();
 		}
 		do {
-			if (node.userModifiable && node.XMLNode &&  node.XMLNode.canHaveText) {
+			if (node.userModifiable && node.XMLNode && ( node.XMLNode.canHaveText || node.hasAttribute("__bxe_attribute"))) {
 				try {
 					sel.collapse(node.firstChild,0);
 				} catch (e) {
@@ -526,10 +526,6 @@
 		}
 		
 		var par = cssr.startContainer.parentNode;
-		var bxid = par.getAttribute("__bxe_id");
-		if (!bxid) {
-			return false;
-		}
 			
 		// if there's a selection then delete it
 		if(!cssr.collapsed)
@@ -552,7 +548,6 @@
 				sel.collapse(_node.firstChild,0);
 				cssr = sel.getRangeAt(0);
 				par = cssr.startContainer.parentNode;
-				bxid = par.getAttribute("__bxe_id");
 				
 			}
 
@@ -573,7 +568,6 @@
 		} else  {
 			startC.insertData(startOff, _ch);
 		}
-		
 		sel.collapse(startC,startOff+1);
 		var lala = bxe_getXMLNodeByHTMLNodeRecursive(par);
 		if (lala.nodeType == 2 ) {
@@ -592,6 +586,7 @@
 				//try again with normalized
 				textNode.parentNode.betterNormalize();
 				textNode.insertData(startOff , _ch);
+				
 			}
 			//textNode._childPosition = _position;
 		}
@@ -620,10 +615,10 @@
 			sel.deleteSelection(backspace);
 			return true;
 	}
+	
 	//switch focus and anchor, if focus is before anchor
-
+	
 	sel.fixFocus();
-		
 		if (sel.anchorOffset >= sel.anchorNode.nodeValue.strip().length) {
 			var _pos = sel.focusOffset;
 			sel.collapse(sel.focusNode,0);
@@ -635,11 +630,22 @@
 			if (sel.anchorNode == sel.focusNode) {
 				if (sel.focusOffset >= sel.anchorNode.nodeValue.strip().length) {
 					var xmlnode = bxe_getXMLNodeByHTMLNodeRecursive(sel.anchorNode);
+					
 					//xmlnode.parentNode.appendChild(xmlnode.ownerDocument.createTextNode(" "));
-					var _par = xmlnode.parentNode;
+					var _par = bxe_getXMLNodeByHTMLNodeRecursive(sel.anchorNode.parentNode);
 					if (_par) {
-						_par.removeChild(xmlnode);
-						_par.XMLNode.makeDefaultNodes();
+						if (_par.nodeType == 2) {
+							if (_par.XMLNode.vdom && _par.XMLNode.vdom.bxeDefaultcontent) {
+								_par.nodeValue = _par.XMLNode.vdom.bxeDefaultcontent;
+							} else {
+								_par.nodeValue = "#";
+								
+							}
+							//_par.XMLNode.makeDefaultNodes();
+						} else {
+							_par.removeChild(xmlnode);
+							_par.XMLNode.makeDefaultNodes();
+						}
 						
 						
 						
-- 
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs