@@ -82,8 +82,8 @@ function get_psp_type(metadata) {
82
82
}
83
83
}
84
84
85
- async function sortHandler ( regularTable , event ) {
86
- const meta = regularTable . getMeta ( event . target ) ;
85
+ async function sortHandler ( regularTable , event , target ) {
86
+ const meta = regularTable . getMeta ( target ) ;
87
87
const column_name = meta . column_header [ meta . column_header . length - 1 ] ;
88
88
const sort_method = event . shiftKey ? append_sort : override_sort ;
89
89
const sort = sort_method . call ( this , column_name ) ;
@@ -149,11 +149,23 @@ async function expandCollapseHandler(regularTable, event) {
149
149
}
150
150
151
151
function mousedownListener ( regularTable , event ) {
152
- if ( event . target . classList . contains ( "psp-tree-label" ) && event . offsetX < 26 ) {
152
+ if ( event . which !== 1 ) {
153
+ return ;
154
+ }
155
+
156
+ let target = event . target ;
157
+ while ( target . tagName !== "TD" && target . tagName !== "TH" ) {
158
+ target = target . parentElement ;
159
+ if ( ! regularTable . contains ( target ) ) {
160
+ return ;
161
+ }
162
+ }
163
+
164
+ if ( target . classList . contains ( "psp-tree-label" ) && event . offsetX < 26 ) {
153
165
expandCollapseHandler . call ( this , regularTable , event ) ;
154
166
event . handled = true ;
155
- } else if ( event . target . classList . contains ( "psp-header-leaf" ) && ! event . target . classList . contains ( "psp-header-corner" ) ) {
156
- sortHandler . call ( this , regularTable , event ) ;
167
+ } else if ( target . classList . contains ( "psp-header-leaf" ) && ! target . classList . contains ( "psp-header-corner" ) ) {
168
+ sortHandler . call ( this , regularTable , event , target ) ;
157
169
event . handled = true ;
158
170
}
159
171
}
@@ -257,5 +269,11 @@ export async function createModel(regular, table, view, extend = {}) {
257
269
export async function configureRegularTable ( regular , model ) {
258
270
regular . addStyleListener ( styleListener . bind ( model , regular ) ) ;
259
271
regular . addEventListener ( "mousedown" , mousedownListener . bind ( model , regular ) ) ;
260
- await regular . draw ( ) ;
272
+ try {
273
+ await regular . draw ( ) ;
274
+ } catch ( e ) {
275
+ if ( e . message !== "View is not initialized" ) {
276
+ throw e ;
277
+ }
278
+ }
261
279
}
0 commit comments