@@ -70,9 +70,11 @@ define([
70
70
domStyle . set ( self . rowNode , {
71
71
zIndex : 2000 - ( self . indent * 2 ) + 1
72
72
} ) ;
73
+ var expandoBox = domGeo . getMarginBox ( this . expandoNode ) ;
73
74
domStyle . set ( self . backgroundNode , {
74
75
zIndex : 2000 - ( self . indent * 2 )
75
76
, height : self . _rowBox ( ) . h + "px"
77
+ , left : expandoBox . l + expandoBox . w
76
78
} ) ;
77
79
}
78
80
, _removeFloatStyle : function ( ) {
@@ -111,6 +113,11 @@ define([
111
113
return this . indent * this . _rowBox ( ) . h ;
112
114
}
113
115
116
+ , scrollToTop : function ( ) {
117
+ var box = domGeo . getMarginBox ( this . domNode ) ;
118
+ this . tree . domNode . scrollTop = box . t - this . getIndentAddition ( ) ;
119
+ }
120
+
114
121
, expand : function ( ) {
115
122
var res = this . inherited ( arguments ) ;
116
123
var self = this ;
@@ -145,6 +152,12 @@ define([
145
152
}
146
153
, collapse : function ( ) {
147
154
var res = this . inherited ( arguments ) ;
155
+ if ( this . _floatStyleAdded ) {
156
+ var self = this ;
157
+ res . then ( function ( ) {
158
+ self . scrollToTop ( ) ;
159
+ } ) ;
160
+ } ;
148
161
this . _removeFloat ( ) ;
149
162
return res ;
150
163
}
@@ -177,8 +190,8 @@ define([
177
190
178
191
, _onClick : function ( /*TreeNode*/ nodeWidget , /*Event*/ e ) {
179
192
if ( e . target && domClass . contains ( e . target , "treeOpenMore" ) ) {
180
- var box = domGeo . getMarginBox ( nodeWidget . domNode ) ;
181
- nodeWidget . tree . domNode . scrollTop = box . t - nodeWidget . getIndentAddition ( ) ;
193
+ // var box = domGeo.getMarginBox(nodeWidget.domNode);
194
+ nodeWidget . scrollToTop ( ) ; // tree.domNode.scrollTop = box.t - nodeWidget.getIndentAddition();
182
195
e . stopPropagation ( ) ;
183
196
e . preventDefault ( ) ;
184
197
return ;
0 commit comments