From cc2b1309b70827b22bdfa5dc761b0ae7223ea802 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 9 Feb 2022 22:51:43 +0300 Subject: [PATCH] [DE][PE][SSE] Add scroll to context menu --- apps/common/main/lib/component/Menu.js | 23 ++++++++++++++++++- .../main/app/view/DocumentHolder.js | 4 +++- .../main/app/view/DocumentHolder.js | 3 +++ .../main/app/view/DocumentHolder.js | 2 ++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/component/Menu.js b/apps/common/main/lib/component/Menu.js index d8c4100630..b5eb87827d 100644 --- a/apps/common/main/lib/component/Menu.js +++ b/apps/common/main/lib/component/Menu.js @@ -651,7 +651,28 @@ define([ if (left < 0) left = 0; - if (this.options.restoreHeight) { + if (this.options.restoreHeightAndTop) { // can change top position, if top<0 - then change menu height + var cg = Common.Utils.croppedGeometry(); + docH = cg.height - 10; + menuRoot.css('max-height', 'none'); + menuH = menuRoot.outerHeight(); + if (top + menuH > docH + cg.top) { + top = docH - menuH; + } + if (top < cg.top) + top = cg.top; + if (top + menuH > docH + cg.top) { + menuRoot.css('max-height', (docH - top) + 'px'); + (!this.scroller) && (this.scroller = new Common.UI.Scroller({ + el: this.$el.find('.dropdown-menu '), + minScrollbarLength: 30, + suppressScrollX: true, + alwaysVisibleY: this.scrollAlwaysVisible + })); + this.wheelSpeed = undefined; + } + this.scroller && this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible}); + } else if (this.options.restoreHeight) { if (typeof (this.options.restoreHeight) == "number") { if (top + menuH > docH) { menuRoot.css('max-height', (docH - top) + 'px'); diff --git a/apps/documenteditor/main/app/view/DocumentHolder.js b/apps/documenteditor/main/app/view/DocumentHolder.js index 9dc0ff682c..f85484e2c8 100644 --- a/apps/documenteditor/main/app/view/DocumentHolder.js +++ b/apps/documenteditor/main/app/view/DocumentHolder.js @@ -2671,6 +2671,7 @@ define([ this.pictureMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, initMenu: function(value){ if (_.isUndefined(value.imgProps)) return; @@ -3283,7 +3284,7 @@ define([ this.tableMenu = new Common.UI.Menu({ cls: 'shifted-right', - // maxHeight: 610, + restoreHeightAndTop: true, initMenu: function(value){ // table properties if (_.isUndefined(value.tableProps)) @@ -4004,6 +4005,7 @@ define([ this.textMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, initMenu: function(value){ var isInShape = (value.imgProps && value.imgProps.value && !_.isNull(value.imgProps.value.get_ShapeProperties())); var isInChart = (value.imgProps && value.imgProps.value && !_.isNull(value.imgProps.value.get_ChartProperties())); diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 731df772b3..27fbce12f7 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -2056,6 +2056,7 @@ define([ me.slideMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, initMenu: function(value) { var selectedLast = me.api.asc_IsLastSlideSelected(), selectedFirst = me.api.asc_IsFirstSlideSelected(); @@ -3342,6 +3343,7 @@ define([ me.tableMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, initMenu: function(value){ // table properties if (_.isUndefined(value.tableProps)) @@ -3555,6 +3557,7 @@ define([ me.pictureMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, initMenu: function(value){ if (me.api) { mnuUnGroupImg.setDisabled(!me.api.canUnGroup()); diff --git a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js index c6dccabddd..ee68478143 100644 --- a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js @@ -552,6 +552,7 @@ define([ me.ssMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, id : 'id-context-menu-cell', items : [ me.pmiCut, @@ -831,6 +832,7 @@ define([ this.imgMenu = new Common.UI.Menu({ cls: 'shifted-right', + restoreHeightAndTop: true, items: [ me.pmiImgCut, me.pmiImgCopy,