Hi, all.
There is this really annoying behavior: 0. Open Writer. 1. Create a table, say 3 x 3. 2. Place the cursor in a cell. 3. Type some text, like asdfasdfasdfasdf. 4. Using the mouse, place the cursor in the middle of the asdf-word. 5. Using the keyboard go left and right and left and right... Notice how the cursor disappears. You don't know where exactly are you at a particular moment. This also happens when jumping cells, which becomes annoying if you are fast-moving between the cells... suddenly you don't know where you are. It does not happen if left/right-ing on a regular paragraph. In that case, the cursor stays on during the move. However, looking at the code, it may happen on other cases. I have managed to eliminate the issue by eliminating the following line: diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 5b92560..cbf39f3 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -344,7 +344,6 @@ BOOL SwCrsrShell::LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode, if( IsTableMode() ) return bLeft ? GoPrevCell() : GoNextCell(); - SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen BOOL bRet = FALSE; // #i27615# Handle cursor in front of label. Beware of word wrapping. The word üeberwachen translated to "monitor" using Google Translate. Of course, I don't have the slightest idea of what an "SwCallLink" is or does and what its side effects are. I have tried to follow the call deeper, but I seem to get nowhere. Removing lines start to behave inconsistently. In that function, aLk is not used, so I'm starting to get the idea that it registers something instead of creating an object for use on the function, and so, the bug gets triggered by a delayed, asynchronous action. I have no choice but to request for help. :-) This is the relevant part of the backtrace: #0 SwCrsrShell::LeftRight (this=0xacaab1e8, bLeft=1 '\001', nCnt=1, nMode=1, bVisualAllowed=1 '\001') at ~/$CLONE/writer/sw/source/core/crsr/crsrsh.cxx:344 #1 0xae3978fd in SwCrsrShell::Left (this=0xacaab1e8, nCnt=1, nMode=1, bAllowVisual=1 '\001') at ../../../inc/crsrsh.hxx:356 #2 0xaecd90d8 in SwWrtShell::Left (this=0xacaab1e8, nMode=1, bSelect=0 '\000', nCount=1, bBasicCall=0 '\000', bVisual=1 '\001') at ~/$CLONE/writer/sw/source/ui/wrtsh/move.cxx:122 #3 0xaebf67e3 in SwTextShell::ExecBasicMove (this=0xaff04134, rReq=...) at ~/$CLONE/writer/sw/source/ui/shells/txtcrsr.cxx:96 #4 0xaebe2f2c in SfxStubSwTextShellExecBasicMove (pShell=0xaff04134, rReq=...) at ../../../unxlngi6.pro/inc/swslots.hxx:2408 #5 0xb73c3f38 in SfxShell::CallExec (this=0xaff04134, pFunc=0xaebe2f08 <SfxStubSwTextShellExecBasicMove(SfxShell*, SfxRequest&)>, rReq=...) at ../../inc/sfx2/shell.hxx:201 #6 0xb73bcd1c in SfxDispatcher::Call_Impl (this=0xacadeb94, rShell=..., rSlot=..., rReq=..., bRecord=1 '\001') at ~/$CLONE/libs-core/sfx2/source/control/dispatch.cxx:281 _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice