diff --git a/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml b/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml
index 109f703fb7..10c12434a5 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml
+++ b/org.adempiere.ui.zk/WEB-INF/src/metainfo/zk/lang-addon.xml
@@ -48,7 +48,7 @@ Copyright (C) 2007 Ashley G Ramdass (ADempiere WebUI).
-
+
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java
index 3e0380b377..f9a98b9216 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java
@@ -61,6 +61,7 @@ import org.zkoss.zul.Cell;
import org.zkoss.zul.Center;
import org.zkoss.zul.Column;
import org.zkoss.zul.Div;
+import org.zkoss.zul.Frozen;
import org.zkoss.zul.Paging;
import org.zkoss.zul.Row;
import org.zkoss.zul.Vlayout;
@@ -299,6 +300,10 @@ public class GridView extends Vlayout implements EventListener, IdSpace,
setupColumns();
render();
+ if (listbox.getFrozen() != null){
+ listbox.getFrozen().setWidgetOverride("syncScroll", "function (){idempiere.syncScrollFrozen(this);}");
+ }
+
updateListIndex();
this.init = true;
@@ -528,9 +533,7 @@ public class GridView extends Vlayout implements EventListener, IdSpace,
Columns columns = new Columns();
//frozen not working well on tablet devices yet
- //frozen is implemented poorly on zk ce, not working with scroll and white-space wrap
//unlikely to be fixed since the working 'smooth scrolling frozen' is a zk ee only feature
- /*
if (!ClientInfo.isMobile())
{
Frozen frozen = new Frozen();
@@ -538,8 +541,7 @@ public class GridView extends Vlayout implements EventListener, IdSpace,
frozen.setColumns(2);
listbox.appendChild(frozen);
}
- */
-
+
org.zkoss.zul.Column selection = new Column();
selection.setHeight("2em");
ZKUpdateUtil.setWidth(selection, "22px");
diff --git a/org.adempiere.ui.zk/WEB-INF/src/web/js/org/idempiere/commons/layout.js b/org.adempiere.ui.zk/WEB-INF/src/web/js/org/idempiere/commons/layout.js
index 47540fd35b..a3ed1691c7 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/web/js/org/idempiere/commons/layout.js
+++ b/org.adempiere.ui.zk/WEB-INF/src/web/js/org/idempiere/commons/layout.js
@@ -13,3 +13,37 @@ window.idempiere.scrollToRow = function(uuid){
}
};
+//overload for recalculate width of grid frozen scroll
+window.idempiere.syncScrollFrozen = function(wgt){
+ var parent = wgt.parent;
+
+ if (parent.eheadtbl && parent._nativebar) {
+ var scroll = wgt.$n('scrollX');
+ var cells = parent._getFirstRowCells(parent.eheadrows);
+ var frozens = wgt._columns;
+
+ var frozenWidth = 0;
+ for (var i = 0; i < frozens; i++)
+ frozenWidth += cells[i].offsetWidth;
+
+ var bodyWidth = parent.$n('body').offsetWidth;
+ var availableWidth = bodyWidth - frozenWidth;
+ var totalWidth = 0;
+ var toScroll = 0;
+ for (var i = frozens; i < cells.length; i++){
+ totalWidth += cells[i].offsetWidth;
+ }
+ for (var i = frozens; i < cells.length; i++){
+ totalWidth -= cells[i].offsetWidth;
+ toScroll++;
+ if (totalWidth <= availableWidth) {
+ break;
+ }
+ }
+
+ if (toScroll > 0)
+ scroll.firstChild.style.width = jq.px0(availableWidth+(toScroll * 50));
+ }
+
+ wgt.$syncScroll ()
+}
\ No newline at end of file
diff --git a/org.adempiere.ui.zk/index.zul b/org.adempiere.ui.zk/index.zul
index 287f808eab..09508cbd74 100644
--- a/org.adempiere.ui.zk/index.zul
+++ b/org.adempiere.ui.zk/index.zul
@@ -13,6 +13,12 @@ Copyright (C) 2007 Ashley G Ramdass.
+ table > tbody > tr.z-columns > th.z-column.hiddencol > .z-column-content {
+ white-space: nowrap !important;
+ text-overflow: unset !important;
+ }
+"?>