@@ -354,7 +354,7 @@ define([
354354$ ( '#vp_wrapper' ) . width ( newVpWidth ) ;
355355if ( 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
358358let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
359359let prevLeft = $ ( target ) . position ( ) . left ;
360360let widthDiff = newVpWidth - vpWidth ;
@@ -367,11 +367,23 @@ define([
367367vpLab . shell . collapseRight ( ) ;
368368vpLab . 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 ) ;
385397if ( 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
388400let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
389401let prevLeft = $ ( target ) . position ( ) . left ;
390402let widthDiff = newVpWidth - vpWidth ;
@@ -397,11 +409,23 @@ define([
397409vpLab . shell . collapseRight ( ) ;
398410vpLab . 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}