loleaflet/build/deps.js                               |   26 +-
 loleaflet/debug/document/document_simple_example.html |    4 
 loleaflet/src/control/Control.ColumnHeader.js         |  168 ++++++++++--------
 loleaflet/src/control/Control.PartsPreview.js         |    4 
 loleaflet/src/control/Control.RowHeader.js            |  141 +++++++++------
 loleaflet/src/control/Control.Tabs.js                 |    4 
 loleaflet/src/layer/tile/CalcTileLayer.js             |   57 ++----
 loleaflet/src/layer/tile/TileLayer.js                 |    2 
 loleaflet/src/map/Map.js                              |    5 
 9 files changed, 229 insertions(+), 182 deletions(-)

New commits:
commit 152ad884e26e030ffa364bfc6ef07e48dad1329b
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 14:50:07 2015 +0200

    Revert "loleaflet: Change !(... >= 0) to ... < 0 for readability."
    
    This reverts commit 00d7ab35195b437c54cc9359dac8f830f5b98471.
    _currentPage can also be undefined so in that case
    !(this._currentPage >= 0) will be evaluated to true
    while
    this._currentPage < 0 will be false (as it should be)

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 30afa3e..d68df14 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -949,7 +949,7 @@ L.TileLayer = L.GridLayer.extend({
 
        _onCurrentPageUpdate: function () {
                var mapCenter = this._map.project(this._map.getCenter());
-               if (!this._partPageRectanglesPixels || this._currentPage < 0 || 
this._currentPage >= this._partPageRectanglesPixels.length ||
+               if (!this._partPageRectanglesPixels || !(this._currentPage >= 
0) || this._currentPage >= this._partPageRectanglesPixels.length ||
                                
this._partPageRectanglesPixels[this._currentPage].contains(mapCenter)) {
                        // page number has not changed
                        return;
commit 35a505d35e37c4fa5578fec9d66ce4ced140a7a5
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 14:45:04 2015 +0200

    loleaflet: allow specifing the document container as a map option

diff --git a/loleaflet/debug/document/document_simple_example.html 
b/loleaflet/debug/document/document_simple_example.html
index e69dc82..34352ae 100644
--- a/loleaflet/debug/document/document_simple_example.html
+++ b/loleaflet/debug/document/document_simple_example.html
@@ -70,6 +70,7 @@
             server: host,
             edit: edit,
             timestamp: timestamp,
+            documentContainer: 'document-container',
             readOnly: false
         });
 
diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index 9a9d3f6..21d3215 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -15,7 +15,7 @@ L.Control.ColumnHeader = L.Control.extend({
                this._map.on('updatescrolloffset', this.setScrollPosition, 
this);
                this._map.on('updateviewport', this.setViewPort, this);
                this._map.on('viewrowcolumnheaders', this.viewRowColumnHeaders, 
this);
-               var docContainer = L.DomUtil.get('document-container');
+               var docContainer = this._map.options.documentContainer;
                var divHeader = L.DomUtil.create('div', 
'spreadsheet-container-column', docContainer.parentElement);
                var tableContainer =  L.DomUtil.create('table', 
'spreadsheet-container-table', divHeader);
                var trContainer = L.DomUtil.create('tr', '', tableContainer);
diff --git a/loleaflet/src/control/Control.PartsPreview.js 
b/loleaflet/src/control/Control.PartsPreview.js
index 51aaff7..82aeda3 100644
--- a/loleaflet/src/control/Control.PartsPreview.js
+++ b/loleaflet/src/control/Control.PartsPreview.js
@@ -11,7 +11,7 @@ L.Control.PartsPreview = L.Control.extend({
        onAdd: function (map) {
                this._previewInitialized = false;
                this._previewTiles = {};
-               var docContainer = L.DomUtil.get('document-container');
+               var docContainer = map.options.documentContainer;
                this._partsPreviewCont = L.DomUtil.create('div', 
'parts-preview', docContainer.parentElement);
 
                map.on('updateparts', this._updateDisabled, this);
@@ -29,7 +29,7 @@ L.Control.PartsPreview = L.Control.extend({
 
                if (!this._previewInitialized && docType === 'presentation') {
                        // make room for the preview
-                       var docContainer = L.DomUtil.get('document-container');
+                       var docContainer = this._map.options.documentContainer;
                        L.DomUtil.addClass(docContainer, 
'parts-preview-document');
                        setTimeout(L.bind(function () {
                                this._map.invalidateSize();
diff --git a/loleaflet/src/control/Control.RowHeader.js 
b/loleaflet/src/control/Control.RowHeader.js
index 335741a..2085da2 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -15,7 +15,7 @@ L.Control.RowHeader = L.Control.extend({
                this._map.on('updatescrolloffset', this.setScrollPosition, 
this);
                this._map.on('updateviewport', this.setViewPort, this);
                this._map.on('viewrowcolumnheaders', this.viewRowColumnHeaders, 
this);
-               var docContainer = L.DomUtil.get('document-container');
+               var docContainer = this._map.options.documentContainer;
                var divRowHeader = L.DomUtil.create('div', 
'spreadsheet-container-row', docContainer.parentElement);
                this._table = L.DomUtil.create('table', 
'spreadsheet-table-row', divRowHeader);
                this._rows = L.DomUtil.create('tbody', '', this._table);
diff --git a/loleaflet/src/control/Control.Tabs.js 
b/loleaflet/src/control/Control.Tabs.js
index 8ab6887..576408b 100644
--- a/loleaflet/src/control/Control.Tabs.js
+++ b/loleaflet/src/control/Control.Tabs.js
@@ -7,7 +7,7 @@ L.Control.Tabs = L.Control.extend({
        onAdd: function (map) {
                this._tabsInitialized = false;
                this._spreadsheetTabs = {};
-               var docContainer = L.DomUtil.get('document-container');
+               var docContainer = map.options.documentContainer;
                this._tabsCont = L.DomUtil.create('div', 'spreadsheet-tab', 
docContainer.parentElement);
 
                map.on('updateparts', this._updateDisabled, this);
@@ -25,7 +25,7 @@ L.Control.Tabs = L.Control.extend({
                if (docType === 'spreadsheet') {
                        if (!this._tabsInitialized) {
                                // make room for the preview
-                               var docContainer = 
L.DomUtil.get('document-container');
+                               var docContainer = 
this._map.options.documentContainer;
                                L.DomUtil.addClass(docContainer, 
'spreadsheet-document');
                                setTimeout(L.bind(function () {
                                        this._map.invalidateSize();
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 7dd0ce5..1f8042e 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -20,6 +20,11 @@ L.Map = L.Evented.extend({
        initialize: function (id, options) { // (HTMLElement or String, Object)
                options = L.setOptions(this, options);
 
+               if (this.options.documentContainer) {
+                       // have it as DOM object
+                       this.options.documentContainer = 
L.DomUtil.get(this.options.documentContainer);
+               }
+
                this._initContainer(id);
                this._initLayout();
 
commit 7f36d5be8af6866c59480c05d05129f4395e4c77
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 14:04:58 2015 +0200

    loleaflet: refactor the row column header
    
    Now it works as a detachable control

diff --git a/loleaflet/debug/document/document_simple_example.html 
b/loleaflet/debug/document/document_simple_example.html
index 35a586f..e69dc82 100644
--- a/loleaflet/debug/document/document_simple_example.html
+++ b/loleaflet/debug/document/document_simple_example.html
@@ -87,5 +87,7 @@
     globalMap.addControl(L.control.dialog());
     globalMap.addControl(L.control.partsPreview());
     globalMap.addControl(L.control.tabs());
+    globalMap.addControl(L.control.columnHeader());
+    globalMap.addControl(L.control.rowHeader());
     </script>
 </body></html>
diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index b5ec373..9a9d3f6 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -3,7 +3,18 @@
 */
 
 L.Control.ColumnHeader = L.Control.extend({
-       onAdd: function () {
+       onAdd: function (map) {
+               map.on('updatepermission', this._onUpdatePermission, this);
+               this._initialized = false;
+               return document.createElement('div');
+       },
+
+       _initialize: function () {
+               this._initialized = true;
+               this._map.on('scrolloffset', this.offsetScrollPosition, this);
+               this._map.on('updatescrolloffset', this.setScrollPosition, 
this);
+               this._map.on('updateviewport', this.setViewPort, this);
+               this._map.on('viewrowcolumnheaders', this.viewRowColumnHeaders, 
this);
                var docContainer = L.DomUtil.get('document-container');
                var divHeader = L.DomUtil.create('div', 
'spreadsheet-container-column', docContainer.parentElement);
                var tableContainer =  L.DomUtil.create('table', 
'spreadsheet-container-table', divHeader);
@@ -24,8 +35,6 @@ L.Control.ColumnHeader = L.Control.extend({
                // dummy initial header
                var dummy = L.DomUtil.create('th', 
'spreadsheet-table-column-cell', this._columns);
                L.DomUtil.create('div', 'spreadsheet-table-column-cell-text', 
dummy);
-
-               return document.createElement('div');
        },
 
        clearColumns : function () {
@@ -33,23 +42,34 @@ L.Control.ColumnHeader = L.Control.extend({
                this._columns = L.DomUtil.create('tr', '', this._table);
        },
 
-       setViewPort: function(totalWidth, viewPort) {
-               this._viewPort = viewPort;
-               this._totalWidth = totalWidth;
+       setViewPort: function(e) {
+               this._viewPort = e.columns.viewPort;
+               this._totalWidth = e.columns.totalWidth;
        },
 
-       setScrollPosition: function (position) {
+       setScrollPosition: function (e) {
+               var position = -e.x;
                this._position = Math.min(0, position);
                L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
        },
 
-       offsetScrollPosition: function (offset) {
+       offsetScrollPosition: function (e) {
+               var offset = e.x;
                this._position = Math.min(0,
                                          Math.max(this._position - offset,
-                                                  -(this._totalWidth - 
this._viewPort - 4)));
+                                                  -(this._totalWidth - 
this._viewPort)));
                L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
        },
 
+       viewRowColumnHeaders: function (e) {
+               if (e.isZoomed) {
+                       this.updateColumns(e.data.columns, e.converter, 
e.context);
+               }
+               else {
+                       this.fillColumns(e.data.columns, e.converter, 
e.context);
+               }
+       },
+
        fillColumns: function (columns, converter, context) {
                var iterator, twip, width, column, text;
 
@@ -73,6 +93,12 @@ L.Control.ColumnHeader = L.Control.extend({
                        twip = new L.Point(width, width);
                        column.width = Math.round(converter.call(context, 
twip).x) - 1 + 'px';
                }
+       },
+
+       _onUpdatePermission: function () {
+               if (this._map.getDocType() === 'spreadsheet' && 
!this._initialized) {
+                       this._initialize();
+               }
        }
 });
 
diff --git a/loleaflet/src/control/Control.RowHeader.js 
b/loleaflet/src/control/Control.RowHeader.js
index 50d6e0b..335741a 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -3,7 +3,18 @@
 */
 
 L.Control.RowHeader = L.Control.extend({
-       onAdd: function () {
+       onAdd: function (map) {
+               map.on('updatepermission', this._onUpdatePermission, this);
+               this._initialized = false;
+               return document.createElement('div');
+       },
+
+       _initialize: function () {
+               this._initialized = true;
+               this._map.on('scrolloffset', this.offsetScrollPosition, this);
+               this._map.on('updatescrolloffset', this.setScrollPosition, 
this);
+               this._map.on('updateviewport', this.setViewPort, this);
+               this._map.on('viewrowcolumnheaders', this.viewRowColumnHeaders, 
this);
                var docContainer = L.DomUtil.get('document-container');
                var divRowHeader = L.DomUtil.create('div', 
'spreadsheet-container-row', docContainer.parentElement);
                this._table = L.DomUtil.create('table', 
'spreadsheet-table-row', divRowHeader);
@@ -17,8 +28,6 @@ L.Control.RowHeader = L.Control.extend({
                var trRow = L.DomUtil.create('tr', '', this._rows);
                var thRow = L.DomUtil.create('th', 
'spreadsheet-table-row-cell', trRow);
                L.DomUtil.create('div', 'spreadsheet-table-row-cell-text', 
thRow);
-
-               return document.createElement('div');
        },
 
        clearRows: function () {
@@ -26,23 +35,35 @@ L.Control.RowHeader = L.Control.extend({
                this._rows = L.DomUtil.create('tbody', '', this._table);
        },
 
-       setViewPort: function(totalHeight, viewPort) {
-               this._viewPort = viewPort;
-               this._totalHeight = totalHeight;
+       setViewPort: function(e) {
+               this._viewPort = e.rows.viewPort;
+               this._totalHeight = e.rows.totalHeight;
        },
 
-       setScrollPosition: function (position) {
+       setScrollPosition: function (e) {
+               var position = -e.y;
                this._position = Math.min(0, position);
                L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
        },
 
-       offsetScrollPosition: function (offset) {
+       offsetScrollPosition: function (e) {
+               var offset = e.y;
                this._position = Math.min(0,
                Math.max(this._position - offset,
-                       -(this._totalHeight - this._viewPort - 4)));
+                       -(this._totalHeight - this._viewPort)));
                L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
        },
 
+       viewRowColumnHeaders: function (e) {
+               if (e.isZoomed) {
+                       this.updateRows(e.data.rows, e.converter, e.context);
+               }
+               else {
+                       this.fillRows(e.data.rows, e.converter, e.context);
+               }
+               this._map._docLayer._isZoomed = false;
+       },
+
        fillRows: function (rows, converter, context) {
                var iterator, twip, height, row, cell, text;
 
@@ -71,6 +92,12 @@ L.Control.RowHeader = L.Control.extend({
                        L.DomUtil.setStyle(text, 'line-height', height);
                        L.DomUtil.setStyle(text, 'height', height);
                }
+       },
+
+       _onUpdatePermission: function () {
+               if (this._map.getDocType() === 'spreadsheet' && 
!this._initialized) {
+                       this._initialize();
+               }
        }
 });
 
diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index c951264..4146ac8 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -6,12 +6,6 @@ L.CalcTileLayer = L.TileLayer.extend({
 
        beforeAdd: function (map) {
                map._addZoomLimit(this);
-               this._columns = L.control.columnHeader();
-               this._rows = L.control.rowHeader();
-               map.addControl(this._columns);
-               map.addControl(this._rows);
-               map.on('scrolloffset', this._onScrollOffset, this);
-               map.on('updatescrolloffset', this._onUpdateScrollOffset, this);
                map.on('zoomend', this._onZoomRowColumns, this);
                map.on('resize', this._onUpdateViewPort, this);
        },
@@ -112,17 +106,8 @@ L.CalcTileLayer = L.TileLayer.extend({
                }
        },
 
-       _onScrollOffset: function(offset) {
-               this._columns.offsetScrollPosition(offset.x);
-               this._rows.offsetScrollPosition(offset.y);
-       },
-
-       _onUpdateScrollOffset: function (e) {
-               this._columns.setScrollPosition(-e.x);
-               this._rows.setScrollPosition(-e.y);
-       },
-
        _onZoomRowColumns: function () {
+               // TODO we need to cache those, so that we don't spawn a LOK 
instance unnecessarily
                this._isZoomend = true;
                this._updateClientZoom();
                if (this._clientZoom) {
@@ -135,15 +120,18 @@ L.CalcTileLayer = L.TileLayer.extend({
        _onUpdateViewPort: function () {
                // sadly I don't know what this number 4 is, but without it, it 
does not work
                // TODO fix it
-               var offset = 4;
-               var width = parseInt(L.DomUtil.getStyle(this._map._container, 
'width')) - offset;
-               if (!isNaN(width)) {
-                       this._columns.setViewPort(this._docPixelSize.x, width);
-               }
-               var height = parseInt(L.DomUtil.getStyle(this._map._container, 
'height')) - offset;
-               if (!isNaN(height)) {
-                       this._rows.setViewPort(this._docPixelSize.y, height);
-               }
+               var width = parseInt(L.DomUtil.getStyle(this._map._container, 
'width'));
+               var height = parseInt(L.DomUtil.getStyle(this._map._container, 
'height'));
+               this._map.fire('updateviewport', {
+                       rows: {
+                               totalHeight: this._docPixelSize.y,
+                               viewPort: height
+                       },
+                       columns: {
+                               totalWidth: this._docPixelSize.x,
+                               viewPort: width
+                       }
+               });
        },
 
        _onStatusMsg: function (textMsg) {
@@ -181,15 +169,12 @@ L.CalcTileLayer = L.TileLayer.extend({
        _onCommandValuesMsg: function (textMsg) {
                if (textMsg.match('.uno:ViewRowColumnHeaders')) {
                        var data = 
JSON.parse(textMsg.substring(textMsg.indexOf('{')));
-                       if (this._isZoomend) {
-                               this._columns.updateColumns(data.columns, 
this._twipsToPixels, this);
-                               this._rows.updateRows(data.rows, 
this._twipsToPixels, this);
-                               this._isZoomend = false;
-                       }
-                       else {
-                               this._columns.fillColumns(data.columns, 
this._twipsToPixels, this);
-                               this._rows.fillRows(data.rows, 
this._twipsToPixels, this);
-                       }
+                       this._map.fire('viewrowcolumnheaders', {
+                               data: data,
+                               converter: this._twipsToPixels,
+                               context: this,
+                               isZoomed: this._isZoomed
+                       });
                        this._onUpdateViewPort();
                }
                else {
commit 3f7de82ef900a208efce8be44cedf080d5aa2ae3
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 12:31:33 2015 +0200

    loleaflet: don't reference our scrollbars

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index c14bb19..c951264 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -133,13 +133,14 @@ L.CalcTileLayer = L.TileLayer.extend({
        },
 
        _onUpdateViewPort: function () {
-               var hscroll = L.DomUtil.get('mCSB_1_scrollbar_horizontal');
-               var width = parseInt(L.DomUtil.getStyle(hscroll, 'width'));
+               // sadly I don't know what this number 4 is, but without it, it 
does not work
+               // TODO fix it
+               var offset = 4;
+               var width = parseInt(L.DomUtil.getStyle(this._map._container, 
'width')) - offset;
                if (!isNaN(width)) {
                        this._columns.setViewPort(this._docPixelSize.x, width);
                }
-               var vscroll = L.DomUtil.get('mCSB_1_scrollbar_vertical');
-               var height = parseInt(L.DomUtil.getStyle(vscroll, 'height'));
+               var height = parseInt(L.DomUtil.getStyle(this._map._container, 
'height')) - offset;
                if (!isNaN(height)) {
                        this._rows.setViewPort(this._docPixelSize.y, height);
                }
commit 2d883a2dbecda80ada1e39ec7121afc822a223bc
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 12:09:32 2015 +0200

    loleaflet: fixed indentation

diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index 9f433ac..1cc21bf 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -282,19 +282,19 @@ var deps = {
                desc: 'Parts preview sidebar'
        },
 
-        ControlColumnHeader: {
-                src: ['control/Control.js',
-                      'control/Control.ColumnHeader.js'],
-                heading: 'Controls',
-                desc: 'Column Header bar'
-        },
-
-        ControlRowHeader: {
-                src: ['control/Control.js',
-                      'control/Control.RowHeader.js'],
-                heading: 'Controls',
-                desc: 'Row Header bar'
-        },
+       ControlColumnHeader: {
+               src: ['control/Control.js',
+                         'control/Control.ColumnHeader.js'],
+               heading: 'Controls',
+               desc: 'Column Header bar'
+       },
+
+       ControlRowHeader: {
+               src: ['control/Control.js',
+                         'control/Control.RowHeader.js'],
+               heading: 'Controls',
+               desc: 'Row Header bar'
+       },
 
        ControlTabs: {
                src: ['control/Control.js',
diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index 17d9082..b5ec373 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -3,77 +3,77 @@
 */
 
 L.Control.ColumnHeader = L.Control.extend({
-    onAdd: function () {
-       var docContainer = L.DomUtil.get('document-container');
-       var divHeader = L.DomUtil.create('div', 'spreadsheet-container-column', 
docContainer.parentElement);
-       var tableContainer =  L.DomUtil.create('table', 
'spreadsheet-container-table', divHeader);
-       var trContainer = L.DomUtil.create('tr', '', tableContainer);
-       var thCorner = L.DomUtil.create('th', 
'spreadsheet-container-th-corner', trContainer);
-       var tableCorner = L.DomUtil.create('table', 'spreadsheet-table-corner', 
thCorner);
-       var trCorner = L.DomUtil.create('tr', '', tableCorner);
-       L.DomUtil.create('th', '', trCorner);
+       onAdd: function () {
+               var docContainer = L.DomUtil.get('document-container');
+               var divHeader = L.DomUtil.create('div', 
'spreadsheet-container-column', docContainer.parentElement);
+               var tableContainer =  L.DomUtil.create('table', 
'spreadsheet-container-table', divHeader);
+               var trContainer = L.DomUtil.create('tr', '', tableContainer);
+               var thCorner = L.DomUtil.create('th', 
'spreadsheet-container-th-corner', trContainer);
+               var tableCorner = L.DomUtil.create('table', 
'spreadsheet-table-corner', thCorner);
+               var trCorner = L.DomUtil.create('tr', '', tableCorner);
+               L.DomUtil.create('th', '', trCorner);
 
-       var thColumns = L.DomUtil.create('th', 
'spreadsheet-container-th-column', trContainer);
-       this._table = L.DomUtil.create('table', 'spreadsheet-table-column', 
thColumns);
-       this._columns = L.DomUtil.create('tr', '', this._table);
+               var thColumns = L.DomUtil.create('th', 
'spreadsheet-container-th-column', trContainer);
+               this._table = L.DomUtil.create('table', 
'spreadsheet-table-column', thColumns);
+               this._columns = L.DomUtil.create('tr', '', this._table);
 
-       this._position = 0;
-       this._totalWidth = 0;
-       this._viewPort = 0;
+               this._position = 0;
+               this._totalWidth = 0;
+               this._viewPort = 0;
 
-       // dummy initial header
-       var dummy = L.DomUtil.create('th', 'spreadsheet-table-column-cell', 
this._columns);
-       L.DomUtil.create('div', 'spreadsheet-table-column-cell-text', dummy);
+               // dummy initial header
+               var dummy = L.DomUtil.create('th', 
'spreadsheet-table-column-cell', this._columns);
+               L.DomUtil.create('div', 'spreadsheet-table-column-cell-text', 
dummy);
 
-       return document.createElement('div');
-        },
+               return document.createElement('div');
+       },
 
-        clearColumns : function () {
-           L.DomUtil.remove(this._columns);
-           this._columns = L.DomUtil.create('tr', '', this._table);
-        },
+       clearColumns : function () {
+               L.DomUtil.remove(this._columns);
+               this._columns = L.DomUtil.create('tr', '', this._table);
+       },
 
-        setViewPort: function(totalWidth, viewPort) {
-           this._viewPort = viewPort;
-           this._totalWidth = totalWidth;
-        },
+       setViewPort: function(totalWidth, viewPort) {
+               this._viewPort = viewPort;
+               this._totalWidth = totalWidth;
+       },
 
-        setScrollPosition: function (position) {
-           this._position = Math.min(0, position);
-           L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
-        },
+       setScrollPosition: function (position) {
+               this._position = Math.min(0, position);
+               L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
+       },
 
-        offsetScrollPosition: function (offset) {
-           this._position = Math.min(0,
-                                     Math.max(this._position - offset,
-                                              -(this._totalWidth - 
this._viewPort - 4)));
-           L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
-        },
+       offsetScrollPosition: function (offset) {
+               this._position = Math.min(0,
+                                         Math.max(this._position - offset,
+                                                  -(this._totalWidth - 
this._viewPort - 4)));
+               L.DomUtil.setStyle(this._table, 'left', this._position + 'px');
+       },
 
-        fillColumns: function (columns, converter, context) {
-           var iterator, twip, width, column, text;
+       fillColumns: function (columns, converter, context) {
+               var iterator, twip, width, column, text;
 
-           this.clearColumns();
-           for (iterator = 0; iterator < columns.length; iterator++) {
-               width = columns[iterator].size - (iterator > 0 ? 
columns[iterator - 1].size : 0);
-               twip = new L.Point(width, width);
-               column = L.DomUtil.create('th', 
'spreadsheet-table-column-cell', this._columns);
-               text = L.DomUtil.create('div', 
'spreadsheet-table-column-cell-text', column);
-               text.innerHTML = columns[iterator].text;
-               column.width = Math.round(converter.call(context, twip).x) - 1 
+ 'px';
-           }
-        },
+               this.clearColumns();
+               for (iterator = 0; iterator < columns.length; iterator++) {
+                       width = columns[iterator].size - (iterator > 0 ? 
columns[iterator - 1].size : 0);
+                       twip = new L.Point(width, width);
+                       column = L.DomUtil.create('th', 
'spreadsheet-table-column-cell', this._columns);
+                       text = L.DomUtil.create('div', 
'spreadsheet-table-column-cell-text', column);
+                       text.innerHTML = columns[iterator].text;
+                       column.width = Math.round(converter.call(context, 
twip).x) - 1 + 'px';
+               }
+       },
 
-        updateColumns: function (columns, converter, context) {
-           var iterator, twip, width, column;
+       updateColumns: function (columns, converter, context) {
+               var iterator, twip, width, column;
 
-           for (iterator = 0; iterator < this._columns.childNodes.length; 
iterator++) {
-               column = this._columns.childNodes[iterator];
-               width = columns[iterator].size - (iterator > 0 ? 
columns[iterator - 1].size : 0);
-               twip = new L.Point(width, width);
-               column.width = Math.round(converter.call(context, twip).x) - 1 
+ 'px';
-           }
-        }
+               for (iterator = 0; iterator < this._columns.childNodes.length; 
iterator++) {
+                       column = this._columns.childNodes[iterator];
+                       width = columns[iterator].size - (iterator > 0 ? 
columns[iterator - 1].size : 0);
+                       twip = new L.Point(width, width);
+                       column.width = Math.round(converter.call(context, 
twip).x) - 1 + 'px';
+               }
+       }
 });
 
 L.control.columnHeader = function (options) {
diff --git a/loleaflet/src/control/Control.RowHeader.js 
b/loleaflet/src/control/Control.RowHeader.js
index c4fab2a..50d6e0b 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -3,75 +3,75 @@
 */
 
 L.Control.RowHeader = L.Control.extend({
-    onAdd: function () {
-       var docContainer = L.DomUtil.get('document-container');
-       var divRowHeader = L.DomUtil.create('div', 'spreadsheet-container-row', 
docContainer.parentElement);
-       this._table = L.DomUtil.create('table', 'spreadsheet-table-row', 
divRowHeader);
-       this._rows = L.DomUtil.create('tbody', '', this._table);
+       onAdd: function () {
+               var docContainer = L.DomUtil.get('document-container');
+               var divRowHeader = L.DomUtil.create('div', 
'spreadsheet-container-row', docContainer.parentElement);
+               this._table = L.DomUtil.create('table', 
'spreadsheet-table-row', divRowHeader);
+               this._rows = L.DomUtil.create('tbody', '', this._table);
 
-       this._position = 0;
-       this._totalHeight = 0;
-       this._viewPort = 0;
+               this._position = 0;
+               this._totalHeight = 0;
+               this._viewPort = 0;
 
-       // dummy initial row header
-       var trRow = L.DomUtil.create('tr', '', this._rows);
-       var thRow = L.DomUtil.create('th', 'spreadsheet-table-row-cell', trRow);
-       L.DomUtil.create('div', 'spreadsheet-table-row-cell-text', thRow);
+               // dummy initial row header
+               var trRow = L.DomUtil.create('tr', '', this._rows);
+               var thRow = L.DomUtil.create('th', 
'spreadsheet-table-row-cell', trRow);
+               L.DomUtil.create('div', 'spreadsheet-table-row-cell-text', 
thRow);
 
-       return document.createElement('div');
-    },
+               return document.createElement('div');
+       },
 
-    clearRows: function () {
-       L.DomUtil.remove(this._rows);
-       this._rows = L.DomUtil.create('tbody', '', this._table);
-    },
+       clearRows: function () {
+               L.DomUtil.remove(this._rows);
+               this._rows = L.DomUtil.create('tbody', '', this._table);
+       },
 
-    setViewPort: function(totalHeight, viewPort) {
-       this._viewPort = viewPort;
-       this._totalHeight = totalHeight;
-    },
+       setViewPort: function(totalHeight, viewPort) {
+               this._viewPort = viewPort;
+               this._totalHeight = totalHeight;
+       },
 
-    setScrollPosition: function (position) {
-       this._position = Math.min(0, position);
-       L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
-    },
+       setScrollPosition: function (position) {
+               this._position = Math.min(0, position);
+               L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
+       },
 
-    offsetScrollPosition: function (offset) {
-       this._position = Math.min(0,
-       Math.max(this._position - offset,
-               -(this._totalHeight - this._viewPort - 4)));
-       L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
-    },
+       offsetScrollPosition: function (offset) {
+               this._position = Math.min(0,
+               Math.max(this._position - offset,
+                       -(this._totalHeight - this._viewPort - 4)));
+               L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
+       },
 
-    fillRows: function (rows, converter, context) {
-       var iterator, twip, height, row, cell, text;
+       fillRows: function (rows, converter, context) {
+               var iterator, twip, height, row, cell, text;
 
-       this.clearRows();
-       for (iterator = 0; iterator < rows.length; iterator++) {
-               height = rows[iterator].size - (iterator > 0 ? rows[iterator - 
1].size : 0);
-               twip = new L.Point(height, height);
-               row  = L.DomUtil.create('tr', '', this._rows);
-               cell = L.DomUtil.create('th', 'spreadsheet-table-row-cell', 
row);
-               text = L.DomUtil.create('div', 
'spreadsheet-table-row-cell-text', cell);
-               text.innerHTML  = rows[iterator].text;
-               height = Math.round(converter.call(context, twip).y) - 
(iterator > 0 ? 1 : 0) + 'px';
-               L.DomUtil.setStyle(text, 'line-height', height);
-               L.DomUtil.setStyle(text, 'height', height);
-       }
-    },
+               this.clearRows();
+               for (iterator = 0; iterator < rows.length; iterator++) {
+                       height = rows[iterator].size - (iterator > 0 ? 
rows[iterator - 1].size : 0);
+                       twip = new L.Point(height, height);
+                       row  = L.DomUtil.create('tr', '', this._rows);
+                       cell = L.DomUtil.create('th', 
'spreadsheet-table-row-cell', row);
+                       text = L.DomUtil.create('div', 
'spreadsheet-table-row-cell-text', cell);
+                       text.innerHTML  = rows[iterator].text;
+                       height = Math.round(converter.call(context, twip).y) - 
(iterator > 0 ? 1 : 0) + 'px';
+                       L.DomUtil.setStyle(text, 'line-height', height);
+                       L.DomUtil.setStyle(text, 'height', height);
+               }
+       },
 
-    updateRows: function (rows, converter, context) {
-       var iterator, twip, height, text;
+       updateRows: function (rows, converter, context) {
+               var iterator, twip, height, text;
 
-       for (iterator = 0; iterator < this._rows.childNodes.length; iterator++) 
{
-               text  = this._rows.childNodes[iterator].firstChild.firstChild;
-               height = rows[iterator].size - (iterator > 0 ? rows[iterator - 
1].size : 0);
-               twip = new L.Point(height, height);
-               height = Math.round(converter.call(context, twip).y) - 
(iterator > 0 ? 1 : 0) + 'px';
-               L.DomUtil.setStyle(text, 'line-height', height);
-               L.DomUtil.setStyle(text, 'height', height);
+               for (iterator = 0; iterator < this._rows.childNodes.length; 
iterator++) {
+                       text  = 
this._rows.childNodes[iterator].firstChild.firstChild;
+                       height = rows[iterator].size - (iterator > 0 ? 
rows[iterator - 1].size : 0);
+                       twip = new L.Point(height, height);
+                       height = Math.round(converter.call(context, twip).y) - 
(iterator > 0 ? 1 : 0) + 'px';
+                       L.DomUtil.setStyle(text, 'line-height', height);
+                       L.DomUtil.setStyle(text, 'height', height);
+               }
        }
-    }
 });
 
 L.control.rowHeader = function (options) {
commit 3b2ee2c0ac658e105359b12ed57d581c8fe938d4
Author: Mihai Varga <[email protected]>
Date:   Fri Dec 11 11:59:54 2015 +0200

    don't initialize the tabs control in calc layer

diff --git a/loleaflet/debug/document/document_simple_example.html 
b/loleaflet/debug/document/document_simple_example.html
index bf3a26c..35a586f 100644
--- a/loleaflet/debug/document/document_simple_example.html
+++ b/loleaflet/debug/document/document_simple_example.html
@@ -86,5 +86,6 @@
     globalMap.addControl(L.control.insertImg());
     globalMap.addControl(L.control.dialog());
     globalMap.addControl(L.control.partsPreview());
+    globalMap.addControl(L.control.tabs());
     </script>
 </body></html>
diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index bf3ba5d..c14bb19 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -10,7 +10,6 @@ L.CalcTileLayer = L.TileLayer.extend({
                this._rows = L.control.rowHeader();
                map.addControl(this._columns);
                map.addControl(this._rows);
-               map.addControl(L.control.tabs());
                map.on('scrolloffset', this._onScrollOffset, this);
                map.on('updatescrolloffset', this._onUpdateScrollOffset, this);
                map.on('zoomend', this._onZoomRowColumns, this);
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to