r1575 - branches/bxe_2_0/mozile
[email protected] Tue, 24 Oct 2006 23:04:53 +0200 (CEST)
| Newsgroups | gmane.editors.bitflux.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: chregu
Date: Tue Oct 24 23:04:52 2006
New Revision: 1575
Modified:
branches/bxe_2_0/mozile/mozilekb.js
Log:
improve cut
Modified: branches/bxe_2_0/mozile/mozilekb.js
==============================================================================
--- branches/bxe_2_0/mozile/mozilekb.js (original)
+++ branches/bxe_2_0/mozile/mozilekb.js Tue Oct 24 23:04:52 2006
@@ -493,7 +493,12 @@
}
do {
if (node.userModifiable && node.XMLNode && node.XMLNode.canHaveText) {
- sel.collapse(node.firstChild,0);
+ try {
+ sel.collapse(node.firstChild,0);
+ } catch (e) {
+ node.appendChild(node.ownerDocument.createTextNode(" "));
+ sel.collapse(node.firstChild,0);
+ }
bxe_updateXPath(node);
return true;
break;
@@ -618,14 +623,16 @@
var n = sel.focusNode;
var o = sel.focusOffset;
sel.collapse(sel.anchorNode,1)
- sel.extend(n,o);
- sel.deleteSelection(backspace);
+ try {
+ sel.extend(n,o);
+ sel.deleteSelection(backspace);
+ } catch (e) {
+ }
// sel.anchorNode.parentNode.updateXMLNode();
}
function bxe_deleteEventKey(sel, backspace) {
-
//switch focus and anchor, if focus is before anchor
if ((!sel.isCollapsed && sel.focusNode.nodeType == 3 && sel.focusNode.compareDocumentPosition(sel.anchorNode) & 4) ||
(sel.focusNode == sel.anchorNode && sel.focusOffset < sel.anchorOffset) ) {
@@ -636,52 +643,52 @@
}
if (sel.isCollapsed) {
sel.deleteSelection(backspace);
- }
- else if (!sel.isCollapsed && sel.anchorNode.nodeType == 3 && sel.anchorOffset == 0) {
- if (sel.anchorNode == sel.focusNode && sel.focusOffset == sel.anchorNode.nodeValue.strip().length) {
-
- var xmlnode = bxe_getXMLNodeByHTMLNode(sel.anchorNode);
- //xmlnode.parentNode.appendChild(xmlnode.ownerDocument.createTextNode(" "));
- var _par = xmlnode.parentNode;
- if (_par) {
- _par.removeChild(xmlnode);
- _par.XMLNode.makeDefaultNodes();
- bxe_Transform();
+ } else if (!sel.isCollapsed && sel.anchorNode.nodeType == 3 && sel.anchorOffset == 0) {
+ // if only one textnode and fully selected
+ if (sel.anchorNode == sel.focusNode) {
+
+ if (sel.focusOffset == sel.anchorNode.nodeValue.strip().length) {
+
+ var xmlnode = bxe_getXMLNodeByHTMLNode(sel.anchorNode);
+ //xmlnode.parentNode.appendChild(xmlnode.ownerDocument.createTextNode(" "));
+ var _par = xmlnode.parentNode;
+ if (_par) {
+ _par.removeChild(xmlnode);
+ _par.XMLNode.makeDefaultNodes();
+ bxe_Transform();
+ } else {
+ bxe_deleteWholeSelection(sel,backspace);
+ sel = window.getSelection();
+ sel.deleteSelection(false);
+ }
} else {
- bxe_deleteWholeSelection(sel,backspace);
- sel = window.getSelection();
- sel.deleteSelection(false);
+ bxe_history_snapshot();
+ sel.deleteSelection(backspace);
+
}
- } else {
-
+ } else {
var xmlnode = bxe_getXMLNodeByHTMLNode(sel.anchorNode);
var _par = xmlnode.parentNode;
- bxe_deleteWholeSelection(sel,backspace);
sel = window.getSelection();
+ bxe_deleteWholeSelection(sel,backspace);
sel.deleteSelection(false);
try {
if (_par.childNodes.length == 1 && _par.firstChild.nodeValue.strip().length == 0) {
_par.removeChild(_par.firstChild);
_par.XMLNode.makeDefaultNodes();
- bxe_Transform();
+
}
} catch(e) {
+
}
+
}
} else {
bxe_history_snapshot();
- cssr = sel.getEditableRange();
-
- var _conode = cssr.commonAncestorContainer;
sel.deleteSelection(backspace);
- if (sel.anchorNode.nodeType == 3) {
- var n = sel.anchorNode.parentNode;
- } else {
- var n = sel.anchorNode;
- }
- var i = 0;
+
}
return true;
--
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs