@@ -354,7 +354,7 @@ define([
354354 $ ( '#vp_wrapper' ) . width ( newVpWidth ) ;
355355 if ( vpConfig . extensionType === 'lab' || vpConfig . extensionType === 'lite' ) {
356356 // LAB: set parent width and position, min-width
357- let target = $ ( '#vp_wrapper' ) . parent ( ) ;
357+ let target = $ ( '#vp_wrapper' ) . closest ( '#jp-right-stack' ) ; // compatible for notebook 7.x
358358 let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
359359 let prevLeft = $ ( target ) . position ( ) . left ;
360360 let widthDiff = newVpWidth - vpWidth ;
@@ -367,11 +367,23 @@ define([
367367 vpLab . shell . collapseRight ( ) ;
368368 vpLab . shell . expandRight ( ) ;
369369 }
370- let relativeSizes = vpLab . shell . _hsplitPanel . layout . relativeSizes ( ) ;
371- let absoluteSizes = vpLab . shell . _hsplitPanel . layout . absoluteSizes ( ) ;
372- let newSize = absoluteSizes [ 1 ] - widthDiff ;
373- let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
374- vpLab . shell . _hsplitPanel . layout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
370+ if ( vpLab . name === 'JupyterLab' ) {
371+ let splitLayout = vpLab . shell . _hsplitPanel . layout ;
372+ let relativeSizes = splitLayout . relativeSizes ( ) ;
373+ let absoluteSizes = splitLayout . absoluteSizes ( ) ;
374+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
375+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
376+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
377+ } else {
378+ // compatible for notebook 7.x
379+ // vpLab.shell.layout.widgets[0]
380+ let splitLayout = vpLab . shell . layout . widgets [ 0 ] ;
381+ let relativeSizes = splitLayout . relativeSizes ( ) ;
382+ let absoluteSizes = splitLayout . widgets . map ( x => x . node . getBoundingClientRect ( ) . width ) ;
383+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
384+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
385+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
386+ }
375387 } else {
376388 $ ( '#vp_wrapper' ) . resizable ( { minWidth : MENU_MIN_WIDTH + MENU_BOARD_SPACING } ) ;
377389 }
@@ -384,7 +396,7 @@ define([
384396 $ ( '#vp_wrapper' ) . width ( newVpWidth ) ;
385397 if ( vpConfig . extensionType === 'lab' || vpConfig . extensionType === 'lite' ) {
386398 // LAB: set parent width and position, min-width
387- let target = $ ( '#vp_wrapper' ) . parent ( ) ;
399+ let target = $ ( '#vp_wrapper' ) . closest ( '#jp-right-stack' ) ; // compatible for notebook 7.x
388400 let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
389401 let prevLeft = $ ( target ) . position ( ) . left ;
390402 let widthDiff = newVpWidth - vpWidth ;
@@ -397,11 +409,23 @@ define([
397409 vpLab . shell . collapseRight ( ) ;
398410 vpLab . shell . expandRight ( ) ;
399411 }
400- let relativeSizes = vpLab . shell . _hsplitPanel . layout . relativeSizes ( ) ;
401- let absoluteSizes = vpLab . shell . _hsplitPanel . layout . absoluteSizes ( ) ;
402- let newSize = absoluteSizes [ 1 ] - widthDiff ;
403- let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
404- vpLab . shell . _hsplitPanel . layout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
412+ if ( vpLab . name === 'JupyterLab' ) {
413+ let splitLayout = vpLab . shell . _hsplitPanel . layout ;
414+ let relativeSizes = splitLayout . relativeSizes ( ) ;
415+ let absoluteSizes = splitLayout . absoluteSizes ( ) ;
416+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
417+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
418+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
419+ } else {
420+ // compatible for notebook 7.x
421+ // vpLab.shell.layout.widgets[0]
422+ let splitLayout = vpLab . shell . layout . widgets [ 0 ] ;
423+ let relativeSizes = splitLayout . relativeSizes ( ) ;
424+ let absoluteSizes = splitLayout . widgets . map ( x => x . node . getBoundingClientRect ( ) . width ) ;
425+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
426+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
427+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
428+ }
405429 } else {
406430 $ ( '#vp_wrapper' ) . resizable ( { minWidth : VP_MIN_WIDTH } ) ;
407431 }
0 commit comments