[Libreoffice-commits] core.git: Branch 'libreoffice-4-3-6' - include/sal svtools/source

Lionel Elie Mamane lionel at mamane.lu
Tue Jan 20 05:45:23 PST 2015


 include/sal/log-areas.dox         |    1 +
 svtools/source/brwbox/brwbox2.cxx |    7 +++++++
 2 files changed, 8 insertions(+)

New commits:
commit ec9603a1b3ffbdf82875bce7328712a786a8cc8d
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Jan 16 17:08:07 2015 +0100

    fdo#88475 BrowseBox/grid: reposition data cursor to current row after paint
    
    Squash with (from master and libreoffice-4-3):
    
      fixup previous commit:
    
      OSL_ENSURE does not execute in non-debug builds (and is deprecated).
      Do not try to seek back if paint did not seek.
      This happens in particular when there is no data source attached (and thus trying to seek fails).
    
      Change-Id: I3f4908c4dcae2bb120bf58c1218e3386c40d5721
    
    Change-Id: I0deee2c3cfdb111b178c4254d7b0544c4ce5c966
    Reviewed-on: https://gerrit.libreoffice.org/13956
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox
index 62525e4..d42c8c2 100644
--- a/include/sal/log-areas.dox
+++ b/include/sal/log-areas.dox
@@ -289,6 +289,7 @@ certain functionality.
 @section svtools
 
 @li @c svtools
+ at li @c svtools.brwbox
 @li @c svtools.config
 @li @c svtools.contnr
 @li @c svtools.control
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index ef9a6d4..9ea9031 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -887,6 +887,7 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, bool
     Color aDelimiterLineColor( ::svtools::ColorConfig().GetColorValue( ::svtools::CALCGRID ).nColor );
 
     // redraw the invalid fields
+    bool paint_seeked(false);
     for ( sal_uLong nRelRow = nRelTopRow;
           nRelRow <= nRelBottomRow && (sal_uLong)nTopRow+nRelRow < (sal_uLong)nRowCount;
           ++nRelRow, aPos.Y() += nDataRowHeigt )
@@ -899,6 +900,7 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, bool
 
         // prepare row
         sal_uLong nRow = nTopRow+nRelRow;
+        paint_seeked = true;
         if ( !SeekRow( nRow) ) {
             OSL_FAIL("BrowseBox::ImplPaintData: SeekRow failed");
         }
@@ -1031,6 +1033,11 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, bool
         }
     }
 
+    if (paint_seeked && !SeekRow(nCurRow))
+    {
+        SAL_WARN("svtools.brwbox", "BrowseBox::ImplPaintData could not seek back to current row after paint");
+    }
+
     if (aPos.Y() > aOverallAreaBRPos.Y() + 1)
         aPos.Y() = aOverallAreaBRPos.Y() + 1;
         // needed for some of the following drawing


More information about the Libreoffice-commits mailing list