Errm... what has the below one to do with me? ;) ;)

Octavio Alvarez wrote on 2010-12-30 05.58:
On Wed, 29 Dec 2010 05:37:31 -0800, Jan Holesovsky <ke...@suse.cz> wrote:
On 2010-12-23 at 21:07 -0800, Octavio Alvarez wrote:


[...]


From what I see, it does most of its work in a destructor, so this looks
like a kind of 'guard' that restores/updates stuff when the SwCallLink
instance is destructed.

Either way; I'd try to revert the callnk.cxx changes from commit
47472e8e70c1ae3dc55a5b00ef69eaa85f651a7f, it has something to do with
tables, and see if you still see the problem. If not, then it might
limit the scope of your debugging to that commit only.

Hopefully I am not misleading you :-)

Indeed, reverting the commit did the trick.

Now, look at this, this blog post documents the patch: :-O

http://cedric.bosdonnat.free.fr/wordpress/?p=472

The thing is that Window::Invalidate() gets called if I move or if I type
inside a table cell, which almost any key triggers, which is wrong.
bUpdatedTable gets set to True inside SwCallLink::~SwCallLink() after
some tests. Another option would be to correct those tests, but that
would be far beyond my knowledge.

Considering the above blog post from cbos I removed the Invalidate() and
tested inserting a 1x1 table inside the cell of another 1x1 table and it
seemed to work and update correctly and open the collapsed cell if I place
the cursor inside it (by pressing Left or Right, for example). It closes
back again if I go outside the empty cell.

Now, do we really need these lines? I tested saving and loading a file
and also using the main window. It worked. I saw no side effects, and my
problem gone, but then again, I really don't know what problems am I
looking for. I also don't know when else may a problem arise...

diff --git a/sw/source/core/crsr/callnk.cxx
b/sw/source/core/crsr/callnk.cxx
index ea998fe..cabef45 100644
--- a/sw/source/core/crsr/callnk.cxx
+++ b/sw/source/core/crsr/callnk.cxx
@@ -143,9 +143,6 @@ SwCallLink::~SwCallLink()
}
}

- if ( bUpdatedTable )
- rShell.GetWin( )->Invalidate( 0 );
-
xub_StrLen nCmp, nAktCntnt = pCurCrsr->GetPoint()->nContent.GetIndex();
USHORT nNdWhich = pCNd->GetNodeType();
ULONG nAktNode = pCurCrsr->GetPoint()->nNode.GetIndex();

BTW, thanks for your help, Kendy, and thanks for the translations, Pascal.

--
Florian Effenberger <flo...@documentfoundation.org>
Steering Committee and Founding Member of The Document Foundation
Tel: +49 8341 99660880 | Mobile: +49 151 14424108
Skype: floeff | Twitter/Identi.ca: @floeff
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to