diff --git a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js index 50c38a1aa..ec09a2dcf 100644 --- a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js +++ b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js @@ -139,6 +139,7 @@ Template.cineDialog.onCreated(() => { */ instance.setOptimalPosition = (event, options) => { + const viewer = $('#viewer'); let toolbarElement = $('.toolbarSection .toolbarSectionTools:first'), cineDialog = $('#cineDialog'), @@ -181,6 +182,21 @@ Template.cineDialog.onCreated(() => { } } + // Check if it is out of screen + if (cineDialogCoords.top < 0) { + cineDialogCoords.top = 0; + } + else if (cineDialogCoords.top + cineDialogSize.height > viewer.height()) { + cineDialogCoords.top -= (cineDialogCoords.top + cineDialogSize.height) - viewer.height(); + } + + if (cineDialogCoords.left < 0) { + cineDialogCoords.left = 0; + } + else if (cineDialogCoords.left + cineDialogSize.width > viewer.width()) { + cineDialogCoords.left -= (cineDialogCoords.left + cineDialogSize.width) - viewer.width(); + } + cineDialog.css(cineDialogCoords); };