From 0ca1b7ace4da7df621d38aa9df8fab3e5984577f Mon Sep 17 00:00:00 2001
From: "Ocke Janssen [oj]" <Ocke.Janssen@oracle.com>
Date: Thu, 6 Jan 2011 12:32:17 +0100
Subject: dba34c: #i113405# remove row from rowset when it can not be accessed
 anymore and adjust rowcount

---
 svx/source/fmcomp/gridctrl.cxx | 12 ++++++++++++
 1 file changed, 12 insertions(+)

(limited to 'svx/source/fmcomp')

diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index 1944bd47dad5..4defba88e3ef 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -2001,6 +2001,18 @@ void DbGridControl::AdjustRows()
             RowRemoved(GetRowCount() - nDelta, nDelta, sal_False);
             // es sind Zeilen weggefallen, dann ab der aktuellen Position neu zeichen
             Invalidate();
+
+            sal_Int32 nNewPos = AlignSeekCursor();
+            if (m_bSynchDisplay)
+                DbGridControl_Base::GoToRow(nNewPos);
+
+            SetCurrent(nNewPos);
+            // there are rows so go to the selected current column
+            if (nRecordCount)
+                GoToRowColumnId(nNewPos, GetColumnId(GetCurColumnId()));
+            if (!IsResizing() && GetRowCount())
+                RecalcRows(GetTopRow(), GetVisibleRows(), sal_True);
+            m_aBar.InvalidateAll(m_nCurrentPos, sal_True);
         }
         else                                                    // zuwenig
             RowInserted(GetRowCount(), -nDelta, sal_True);
-- 
cgit