タブを移動した時のツリーの自動編集処理を修正

git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@1633 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
piro 2007-11-27 02:42:02 +00:00
parent 61f22fa749
commit 242c3ccd47

View File

@ -1081,40 +1081,39 @@ TreeStyleTabBrowser.prototype = {
{
var parent = this.getParentTab(aTab);
var prevTab = aTab.previousSibling;
var nextTab = aTab.nextSibling;
var prevParent = this.getParentTab(prevTab);
var prevLevel = aTab.previousSibling ? Number(prevTab.getAttribute(this.kNEST)) : -1 ;
var nextParent = this.getParentTab(nextTab);
var nextLevel = aTab.hasAttribute(this.kCHILDREN) ? (
this.getNextSiblingTab(aTab) ? Number(this.getNextSiblingTab(aTab).getAttribute(this.kNEST)) : 0
) :
nextTab ? Number(nextTab.getAttribute(this.kNEST)) : -1 ;
if (aOldPosition === void(0)) aOldPosition = aTab._tPos;
var pos = this.getChildIndex(aTab, parent);
if (aTab._tPos < aOldPosition) aOldPosition--;
var oldPos = this.getChildIndex(this.mTabBrowser.mTabContainer.childNodes[aOldPosition], parent);
var delta;
if (
// (parent && (
// parent != prevParent ||
// parent != nextParent
// )) ||
pos < 0 || oldPos < 0
) {
if (pos == oldPos) { // no move?
return;
}
else if (pos < 0 || oldPos < 0) {
delta = 2;
}
else {
delta = Math.abs(pos - oldPos);
}
var newParent = null;
var prevTab = aTab.previousSibling;
var nextTab = aTab.nextSibling;
var tabs = this.getDescendantTabs(aTab);
if (tabs.length) {
nextTab = tabs[tabs.length-1].nextSibling;
}
var prevParent = this.getParentTab(prevTab);
var nextParent = this.getParentTab(nextTab);
var prevLevel = prevTab ? Number(prevTab.getAttribute(this.kNEST)) : -1 ;
var nextLevel = nextTab ? Number(nextTab.getAttribute(this.kNEST)) : -1 ;
var newParent;
if (!prevTab) {
newParent = null;
}
else if (!nextTab) {
newParent = (delta > 1) ? prevParent : parent ;
@ -1123,7 +1122,8 @@ TreeStyleTabBrowser.prototype = {
newParent = prevParent;
}
else if (prevLevel > nextLevel) {
newParent = (delta > 1) ? prevParent : this.getParentTab(prevParent) ;
var realDelta = Math.abs(aTab._tPos - aOldPosition);
newParent = realDelta < 2 ? prevParent : parent ;
}
else if (prevLevel < nextLevel) {
newParent = aTab.previousSibling;
@ -1131,7 +1131,7 @@ TreeStyleTabBrowser.prototype = {
if (newParent != parent) {
if (newParent)
this.attachTabTo(aTab, newParent, { insertBefore : aTab.nextSibling });
this.attachTabTo(aTab, newParent, { insertBefore : nextTab });
else
this.partTab(aTab);
}
@ -1234,10 +1234,7 @@ TreeStyleTabBrowser.prototype = {
if (!parent && (before = this.getTabById(before))) {
var index = before._tPos;
if (index > tab._tPos) index--;
// this.internallyTabMoving = true;
b.moveTabTo(tab, index);
// this.internallyTabMoving = false;
// this.attachTabFromPosition(tab);
}
this.deleteTabValue(tab, this.kINSERT_BEFORE);