Author: chregu
Date: Thu May 18 19:16:46 2006
New Revision: 1485
Modified:
branches/bxe_2_0/mozile/mozilekb.js
Log:
implement tab based navigation between elements
Modified: branches/bxe_2_0/mozile/mozilekb.js
==============================================================================
--- branches/bxe_2_0/mozile/mozilekb.js (original)
+++ branches/bxe_2_0/mozile/mozilekb.js Thu May 18 19:16:46 2006
@@ -369,7 +369,6 @@
}
// UP/DOWN (event.DOM_VK_UP/DOWN)
-
if (event.keyCode == 38 || event.keyCode == 40) {
bxe_delayedUpdateXPath();
return false;
@@ -464,21 +463,41 @@
return false;
}
- // if there's a selection then delete it
- if(!cssr.collapsed)
- {
- cssr.extractContentsByCSS();
+
+
+ if (cssr.startContainer.nodeType != 1) {
+ var node = cssr.startContainer.parentNode;
+ } else {
+ var node = cssr.startContainer;
}
-
- // seems to mess up the current position!
- ip = documentCreateInsertionPoint(cssr.top, cssr.startContainer, cssr.startOffset);
- if(ip.cssWhitespace == "pre")
- ip.insertCharacter(CHARCODE_TAB);
- else
- ip.insertCharacter(CHARCODE_SPACE); // POST05: may change to insert a set of spaces
-
- // put cursor after inserted text: TODO - move on CSSR instead
- sel.collapse(ip.ipNode, ip.ipOffset);
+ 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) {
+ sel.collapse(node.firstChild,0);
+ bxe_updateXPath(node);
+ return true;
+ break;
+ }
+ if (event.shiftKey) {
+ node = walker.previousNode();
+ } else {
+ node = walker.nextNode();
+ }
+ } while(node);
+ //ip.insertCharacter(CHARCODE_SPACE); // POST05: may change to insert a set of spaces
+
return true;
}
if(event.keyCode == event.DOM_VK_HOME) {
--
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.