Skip to content

Commit 428ddd7

Browse files
author
minjk-bl
committed
Edit resizing for notebook7.x
1 parent 3312d5f commit 428ddd7

File tree

1 file changed

+36
-12
lines changed

1 file changed

+36
-12
lines changed

visualpython/js/MainFrame.js

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)