You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/12/04 20:48:34 UTC

[royale-asjs] 02/02: tune ADG virtual scrolling. Should fix #609

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 800fd575ad5f930a19d1e7954ce2c807e4c97bc5
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Dec 4 12:48:12 2019 -0800

    tune ADG virtual scrolling.  Should fix #609
---
 .../mx/controls/beads/DataGridLinesBeadForICollectionView.as      | 2 +-
 .../royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as    | 8 +++++---
 .../beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as    | 7 ++++---
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
index 290a4f5..818e1fd 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as
@@ -73,7 +73,7 @@ package mx.controls.beads
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
             
             var columns:Array = sharedModel.columns;			
-            var rowHeight:Number = presentationModel.rowHeight;
+            var rowHeight:Number = presentationModel.rowHeight + presentationModel.separatorThickness;
             var n:int = getDataProviderLength();
             var totalHeight:Number = n * rowHeight;
             if (totalHeight < contentView.height)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
index 1e031e5..1adf495 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
@@ -100,15 +100,17 @@ package mx.controls.beads.layouts
                 if (!displayedColumns) return retval;
                 var n:int = displayedColumns.length;
                 var listArea:IUIBase = (uiHost.view as IDataGridView).listArea;
+                var actualRowHeight:Number = presentationModel.rowHeight 
+                    + presentationModel.separatorThickness;
                 COMPILE::JS
                 {
-                var topSpacerHeight:Number = Math.floor(listArea.element.scrollTop / presentationModel.rowHeight)
-                    * presentationModel.rowHeight;
+                var topSpacerHeight:Number = Math.floor(listArea.element.scrollTop / actualRowHeight)
+                    * actualRowHeight;
                 }
                 var model:IDataGridModel = uiHost.model as IDataGridModel;
                 if (model.dataProvider && model.dataProvider.length)
                 {
-                    var totalHeight:Number = model.dataProvider.length * presentationModel.rowHeight;
+                    var totalHeight:Number = model.dataProvider.length * actualRowHeight;
                     COMPILE::JS
                     {
                         if (!spacer)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
index 33d72d6..f6ca342 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
@@ -247,7 +247,8 @@ package mx.controls.beads.layouts
                         return true;
                     }
                     var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
-                    var totalHeight:Number = presentationModel.rowHeight * dp.length;
+                    var actualRowHeight:Number = presentationModel.rowHeight + presentationModel.separatorThickness;
+                    var totalHeight:Number = actualRowHeight * dp.length;
                     var viewportTop:Number = getVerticalScrollPosition();
                     // correct overscroll on Safari?
                     var top:String = host.element.style.top;
@@ -263,9 +264,9 @@ package mx.controls.beads.layouts
                     }
                     // end correct overscroll on Safari
                     var viewportHeight:Number = contentView.element.clientHeight;
-                    var startIndex:int = Math.floor(viewportTop / presentationModel.rowHeight);
+                    var startIndex:int = Math.floor(viewportTop / actualRowHeight);
                     var factory:IDataProviderVirtualItemRendererMapper = host.getBeadByType(IDataProviderVirtualItemRendererMapper) as IDataProviderVirtualItemRendererMapper;
-                    var endIndex:int = Math.ceil((viewportTop + viewportHeight) / presentationModel.rowHeight);
+                    var endIndex:int = Math.ceil((viewportTop + viewportHeight) / actualRowHeight);
                     var freeIndex:int;
                     var firstIndex:int;
                     var lastIndex:int;