]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes a bug with frozen columns, and adding/removing them (#12645)
authorHenrik Paul <henrik@vaadin.com>
Tue, 26 Nov 2013 08:35:00 +0000 (10:35 +0200)
committerHenrik Paul <henrik@vaadin.com>
Tue, 26 Nov 2013 08:35:00 +0000 (10:35 +0200)
Change-Id: I7b085d1113c4f21c5b494dde97c45d728e0ea4a0

client/src/com/vaadin/client/ui/grid/Escalator.java

index 540676653ee4f8dfea56cbd75506ac8412e44b56..431b8715adab590ef0e33b0d5211ecbf13761421 100644 (file)
@@ -597,6 +597,19 @@ public class Escalator extends Widget {
                 hScrollbarStyle.clearRight();
             }
 
+            /*
+             * If decreasing the amount of frozen columns, and scrolled to the
+             * right, the scroll position will reset. So we need to remember the
+             * scroll position, and re-apply it once the scrollbar size has been
+             * adjusted.
+             */
+            final int scrollPos = horizontalScrollbar.getScrollPos();
+            final int leftPos = getColumnConfiguration().getFrozenColumnCount()
+                    * COLUMN_WIDTH_PX;
+            horizontalScrollbar.getElement().getStyle()
+                    .setLeft(leftPos, Unit.PX);
+            horizontalScrollbar.setScrollPos(scrollPos);
+
             // we might've got new or got rid of old scrollbars.
             recalculateTableWrapperSize();
         }
@@ -2581,17 +2594,7 @@ public class Escalator extends Widget {
                 }
             }
 
-            /*
-             * If decreasing the amount of frozen columns, and scrolled to the
-             * right, the scroll position will reset. So we need to remember the
-             * scroll position, and re-apply it once the scrollbar size has been
-             * adjusted.
-             */
-            int scrollPos = horizontalScrollbar.getScrollPos();
-            horizontalScrollbar.getElement().getStyle()
-                    .setLeft(frozenColumns * COLUMN_WIDTH_PX, Unit.PX);
             scroller.recalculateScrollbarsForVirtualViewport();
-            horizontalScrollbar.setScrollPos(scrollPos);
         }
 
         @Override