loleaflet/src/control/Control.Header.js |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

New commits:
commit 1588d2fe12960f2f530e39340636b6393ca21571
Author: Marco Cecchetti <marco.cecche...@collabora.com>
Date:   Mon May 22 18:05:05 2017 +0200

    loleflet - sc: header incorrectly shows selection sometimes
    
    Problem:
    - Select a whole row, let's say row 10.
    - Select a whole column, let's say column I.
    
    => Columns headers right from I, (J, K etc.) are still highlighted.
    Similarly if a column selected first, and a row next.
    
    Change-Id: I13ad0e2a152ddbf96c4889a3aea5129885bc95b5
    Reviewed-on: https://gerrit.libreoffice.org/38000
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/control/Control.Header.js 
b/loleaflet/src/control/Control.Header.js
index 13bcd947..7b309339 100644
--- a/loleaflet/src/control/Control.Header.js
+++ b/loleaflet/src/control/Control.Header.js
@@ -33,11 +33,8 @@ L.Control.Header = L.Control.extend({
                if (this._selection.start === -1 && this._selection.end === -1)
                        return;
                var childs = element.children;
-               // if the selection is cleared when the end selection cell is 
not in the current viewport,
-               // we have _selection.end === -1, since only a portion of the 
header is fetched;
-               // so, without the following hack, the selection would not be 
cleared correctly
                var start = (this._selection.start === -1) ? 0 : 
this._selection.start;
-               var end = (this._selection.end === -1) ? childs.length : 
this._selection.end + 1;
+               var end = this._selection.end + 1;
                for (var iterator = start; iterator < end; iterator++) {
                        this.unselect(childs[iterator]);
                }
@@ -72,6 +69,12 @@ L.Control.Header = L.Control.extend({
                        }
                }
 
+               // if end is greater than the last fetched header position set 
itEnd to the max possible value
+               // without this hack selecting a whole row and then a whole 
column (or viceversa) leads to an incorrect selection
+               if (itStart !== -1 && itEnd === -1) {
+                       itEnd = childs.length - 1;
+               }
+
                // we need to unselect the row (column) header entry for the 
current cell cursor position
                // since the selection could be due to selecting a whole row 
(column), so the selection
                // does not start by clicking on a cell
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to