twisty上でドラッグ開始できなくなっていたのを修正

git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@1229 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
piro 2007-10-18 18:54:25 +00:00
parent 9b461385d3
commit 3e94c50af9
2 changed files with 49 additions and 35 deletions

View File

@ -8,7 +8,8 @@ var TreeStyleTabService = {
kSUBTREE_COLLAPSED : 'treestyletab-subtree-collapsed',
kCOLLAPSED : 'treestyletab-tab-collapsed',
kTWISTY : 'treestyletab-tab-tree-twisty',
kTWISTY : 'treestyletab-tab-tree-twisty',
kTWISTY_CONTAINER : 'treestyletab-tab-tree-twisty-container',
levelMargin : 12,
@ -330,10 +331,15 @@ var TreeStyleTabService = {
{
if (document.getAnonymousElementByAttribute(aTab, 'class', this.kTWISTY)) return;
var twisty = document.createElement('toolbarbutton');
var twisty = document.createElement('image');
twisty.setAttribute('class', this.kTWISTY);
var container = document.createElement('hbox');
container.setAttribute('class', this.kTWISTY_CONTAINER);
container.appendChild(twisty);
var icon = document.getAnonymousElementByAttribute(aTab, 'class', 'tab-icon');
icon.appendChild(twisty);
icon.appendChild(container);
},
destroy : function()
@ -511,7 +517,7 @@ var TreeStyleTabService = {
self.moveTabSubTreeTo(aTab, b.mTabContainer.lastChild._tPos);
} :
parentTab ? function(aTab) {
self.adoptTabTo(aTab, parentTab, tab, true);
self.adoptTabTo(aTab, parentTab, { insertBefore : tab, dontUpdateIndent : true });
} :
function(aTab) {
self.repudiateTab(aTab, true);
@ -566,7 +572,7 @@ var TreeStyleTabService = {
for (var i = 0, maxi = children.length; i < maxi; i++)
{
if (children[i] && (children[i] = this.getTabById(children[i], b))) {
this.adoptTabTo(children[i], tab, null, true);
this.adoptTabTo(children[i], tab, { dontExpand : true, dontUpdateIndent : true });
tabs.push(children[i]);
}
}
@ -575,7 +581,7 @@ var TreeStyleTabService = {
var parent = this.getTabValue(tab, this.kPARENT);
var before = this.getTabValue(tab, this.kINSERT_BEFORE);
if (parent && (parent = this.getTabById(parent, b))) {
this.adoptTabTo(tab, parent, (before ? this.getTabById(before, b) : null ), true);
this.adoptTabTo(tab, parent, { dontExpand : true, insertBefore : (before ? this.getTabById(before, b) : null ), dontUpdateIndent : true });
this.deleteTabValue(tab, this.kPARENT);
this.updateTabsIndent([tab]);
}
@ -583,11 +589,9 @@ var TreeStyleTabService = {
this.updateTabsIndent(tabs);
}
/*
if (isSubTreeCollapsed) {
this.collapseExpandTabSubTree(tab, isSubTreeCollapsed);
}
*/
},
onTabMouseDown : function(aEvent)
@ -829,9 +833,10 @@ var TreeStyleTabService = {
/* Commands */
adoptTabTo : function(aChild, aParent, aInsertBefore, aDontUpdateIndent)
adoptTabTo : function(aChild, aParent, aInfo)
{
if (!aChild || !aParent) return;
if (!aInfo) aInfo = {};
var id = aChild.getAttribute(this.kID);
var b = this.getTabBrowserFromChildren(aParent);
@ -845,10 +850,11 @@ var TreeStyleTabService = {
children = ('|'+children).replace('|'+id, '').replace(/^\|/);
}
var beforeTab = aInsertBefore ? aInsertBefore.getAttribute(this.kID) : null ;
if (aInsertBefore && children.indexOf(beforeTab) > -1) {
var insertBefore = aInfo.insertBefore;
var beforeTab = insertBefore ? insertBefore.getAttribute(this.kID) : null ;
if (beforeTab && children.indexOf(beforeTab) > -1) {
children = children.replace(beforeTab, id+'|'+beforeTab);
newIndex = aInsertBefore._tPos;
newIndex = insertBefore._tPos;
}
else {
children = ((children || '')+'|'+id).replace(/^\|/, '');
@ -866,30 +872,37 @@ var TreeStyleTabService = {
if (newIndex > aChild._tPos) newIndex--;
this.moveTabSubTreeTo(aChild, newIndex);
if (
(
aParent.getAttribute(this.kSUBTREE_COLLAPSED) == 'true' ||
children.indexOf('|') < 0 // first child
) &&
this.getPref('extensions.treestyletab.autoCollapseExpandSubTreeOnSelect')
) {
this.collapseExpandTreesIntelligentlyFor(aChild);
}
else if (aParent.getAttribute(this.kSUBTREE_COLLAPSED) == 'true') {
var p = aParent;
do {
this.collapseExpandTabSubTree(p, false);
if (!aInfo.dontExpand) {
if (
(
aParent.getAttribute(this.kSUBTREE_COLLAPSED) == 'true' ||
children.indexOf('|') < 0 // first child
) &&
this.getPref('extensions.treestyletab.autoCollapseExpandSubTreeOnSelect')
) {
this.collapseExpandTreesIntelligentlyFor(aChild);
}
while (p = this.getParentTabOf(p));
else if (aParent.getAttribute(this.kSUBTREE_COLLAPSED) == 'true') {
if (this.getPref('extensions.treestyletab.autoExpandSubTreeOnAppendChild')) {
var p = aParent;
do {
this.collapseExpandTabSubTree(p, false);
}
while (p = this.getParentTabOf(p));
}
else
this.collapseExpandTab(aChild, true);
}
else
if (aParent.getAttribute(this.kCOLLAPSED) == 'true')
this.collapseExpandTab(aChild, true);
}
if (aParent.getAttribute(this.kCOLLAPSED) == 'true')
else if (aParent.getAttribute(this.kSUBTREE_COLLAPSED) == 'true' ||
aParent.getAttribute(this.kCOLLAPSED) == 'true') {
this.collapseExpandTab(aChild, true);
}
if (!aDontUpdateIndent) this.updateTabsIndent([aChild]);
if (!aInfo.dontUpdateIndent) this.updateTabsIndent([aChild]);
},
repudiateTab : function(aChild, aDontUpdateIndent)

View File

@ -1,12 +1,14 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.treestyletab-tab-tree-twisty-container {
margin: 0 3px 0 -3px;
-moz-box-pack: start;
-moz-box-align: center;
-moz-box-flex: 1;
}
.treestyletab-tab-tree-twisty {
-moz-appearance: none;
margin: -2px -3px -2px -4px;
padding: 1px;
width: auto;
height: auto;
border: none;
outline: none;
background: none;
@ -24,4 +26,3 @@ tab:not([treestyletab-children]) .treestyletab-tab-tree-twisty {
tab[treestyletab-tab-collapsed="true"] {
visibility: collapse;
}