diff --git a/Packages/ohif-viewerbase/client/components/viewer/imageControls/imageControls.js b/Packages/ohif-viewerbase/client/components/viewer/imageControls/imageControls.js index 7ffdbff00..d80b6deab 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/imageControls/imageControls.js +++ b/Packages/ohif-viewerbase/client/components/viewer/imageControls/imageControls.js @@ -1,5 +1,6 @@ import { Template } from 'meteor/templating'; import { $ } from 'meteor/jquery'; +import { _ } from 'meteor/underscore'; import { OHIF } from 'meteor/ohif:core'; import { setActiveViewport } from '../../../lib/setActiveViewport'; import { switchToImageByIndex } from '../../../lib/switchToImageByIndex'; @@ -13,13 +14,28 @@ Template.imageControls.onRendered(() => { // Set the current imageSlider width to its parent's height // (because webkit is stupid and can't style vertical sliders) const $slider = instance.$('.imageSlider'); - const $element = $slider.parents().eq(2).siblings('.imageViewerViewport'); - const viewportHeight = $element.height(); + const $viewport = $slider.closest('.imageViewerViewportOverlay').siblings('.imageViewerViewport'); - $slider.width(viewportHeight - 20); + instance.handleResize = _.throttle(() => { + const viewportHeight = $viewport.height(); + $slider.width(viewportHeight - 20); + }, 150); + + instance.handleResize(); + + $(window).on('resize', instance.handleResize); +}); + +Template.imageControls.onDestroyed(() => { + const instance = Template.instance(); + $(window).off('resize', instance.handleResize); }); Template.imageControls.events({ + 'rescale .scrollbar'(event, instance) { + instance.handleResize(); + }, + 'keydown input[type=range]'(event) { // We don't allow direct keyboard up/down input on the // image sliders since the natural direction is reversed (0 is at the top) diff --git a/Packages/ohif-viewerbase/client/lib/classes/ResizeViewportManager.js b/Packages/ohif-viewerbase/client/lib/classes/ResizeViewportManager.js index 8ed5b3366..57a8509bd 100644 --- a/Packages/ohif-viewerbase/client/lib/classes/ResizeViewportManager.js +++ b/Packages/ohif-viewerbase/client/lib/classes/ResizeViewportManager.js @@ -81,23 +81,8 @@ export class ResizeViewportManager { resizeScrollbars(element) { OHIF.log.info('ResizeViewportManager resizeScrollbars'); - const currentOverlay = $(element).siblings('.imageViewerViewportOverlay'); - currentOverlay.find('.imageControls').height($(element).height()); - - // Set it's width to its parent's height - // (because webkit is stupid and can't style vertical sliders) - const scrollbar = currentOverlay.find('#scrollbar'); - scrollbar.height(scrollbar.parent().height() - 20); - - const currentImageSlider = currentOverlay.find('#imageSlider'); - const overlayHeight = currentImageSlider.parent().height(); - const browserInfo = cornerstoneTools.getBrowserInfo(); - - if (browserInfo.indexOf('IE') > -1) { - currentImageSlider.height(overlayHeight); - } else { - currentImageSlider.width(overlayHeight); - } + const $currentOverlay = $(element).siblings('.imageViewerViewportOverlay'); + $currentOverlay.find('.scrollbar').trigger('rescale'); } // Resize a single viewport element