@@ -45,6 +45,22 @@ angular.module('ui.grid')
45
45
46
46
self . viewportAdjusters = [ ] ;
47
47
48
+ /**
49
+ * @ngdoc boolean
50
+ * @name hasHScrollbar
51
+ * @propertyOf ui.grid.class:GridRenderContainer
52
+ * @description flag to signal that container has a horizontal scrollbar
53
+ */
54
+ self . hasHScrollbar = false ;
55
+
56
+ /**
57
+ * @ngdoc boolean
58
+ * @name hasHScrollbar
59
+ * @propertyOf ui.grid.class:GridRenderContainer
60
+ * @description flag to signal that container has a vertical scrollbar
61
+ */
62
+ self . hasVScrollbar = false ;
63
+
48
64
/**
49
65
* @ngdoc boolean
50
66
* @name canvasHeightShouldUpdate
@@ -715,9 +731,16 @@ angular.module('ui.grid')
715
731
this . columnStyles = ret ;
716
732
} ;
717
733
734
+ GridRenderContainer . prototype . needsHScrollbarPlaceholder = function ( ) {
735
+ return this . grid . options . enableHorizontalScrollbar && ! this . hasHScrollbar ;
736
+ } ;
737
+
718
738
GridRenderContainer . prototype . getViewportStyle = function ( ) {
719
739
var self = this ;
720
740
var styles = { } ;
741
+
742
+ self . hasHScrollbar = false ;
743
+ self . hasVScrollbar = false ;
721
744
722
745
if ( self . grid . disableScrolling ) {
723
746
styles [ 'overflow-x' ] = 'hidden' ;
@@ -726,33 +749,29 @@ angular.module('ui.grid')
726
749
}
727
750
728
751
if ( self . name === 'body' ) {
729
- styles [ 'overflow-x' ] = self . grid . options . enableHorizontalScrollbar === uiGridConstants . scrollbars . NEVER ? 'hidden' : 'scroll' ;
752
+ self . hasHScrollbar = self . grid . options . enableHorizontalScrollbar !== uiGridConstants . scrollbars . NEVER ;
730
753
if ( ! self . grid . isRTL ( ) ) {
731
- if ( self . grid . hasRightContainerColumns ( ) ) {
732
- styles [ 'overflow-y' ] = 'hidden' ;
733
- }
734
- else {
735
- styles [ 'overflow-y' ] = self . grid . options . enableVerticalScrollbar === uiGridConstants . scrollbars . NEVER ? 'hidden' : 'scroll' ;
754
+ if ( ! self . grid . hasRightContainerColumns ( ) ) {
755
+ self . hasVScrollbar = self . grid . options . enableVerticalScrollbar !== uiGridConstants . scrollbars . NEVER ;
736
756
}
737
757
}
738
758
else {
739
- if ( self . grid . hasLeftContainerColumns ( ) ) {
740
- styles [ 'overflow-y' ] = 'hidden' ;
741
- }
742
- else {
743
- styles [ 'overflow-y' ] = self . grid . options . enableVerticalScrollbar === uiGridConstants . scrollbars . NEVER ? 'hidden' : 'scroll' ;
759
+ if ( ! self . grid . hasLeftContainerColumns ( ) ) {
760
+ self . hasVScrollbar = self . grid . options . enableVerticalScrollbar !== uiGridConstants . scrollbars . NEVER ;
744
761
}
745
762
}
746
763
}
747
764
else if ( self . name === 'left' ) {
748
- styles [ 'overflow-x' ] = 'hidden' ;
749
- styles [ 'overflow-y' ] = self . grid . isRTL ( ) ? ( self . grid . options . enableVerticalScrollbar === uiGridConstants . scrollbars . NEVER ? 'hidden' : 'scroll' ) : 'hidden' ;
765
+ self . hasVScrollbar = self . grid . isRTL ( ) ? self . grid . options . enableVerticalScrollbar !== uiGridConstants . scrollbars . NEVER : false ;
750
766
}
751
767
else {
752
- styles [ 'overflow-x' ] = 'hidden' ;
753
- styles [ 'overflow-y' ] = ! self . grid . isRTL ( ) ? ( self . grid . options . enableVerticalScrollbar === uiGridConstants . scrollbars . NEVER ? 'hidden' : 'scroll' ) : 'hidden' ;
768
+ self . hasVScrollbar = ! self . grid . isRTL ( ) ? self . grid . options . enableVerticalScrollbar !== uiGridConstants . scrollbars . NEVER : false ;
754
769
}
755
770
771
+ styles [ 'overflow-x' ] = self . hasHScrollbar ? 'scroll' : 'hidden' ;
772
+ styles [ 'overflow-y' ] = self . hasVScrollbar ? 'scroll' : 'hidden' ;
773
+
774
+
756
775
return styles ;
757
776
758
777
0 commit comments