On 28-Mar-2000 Jean-Marc Lasgouttes wrote:
> 
> Hello,
> 
> I just commited a fix to cvs which fixes for me the backspace-crash
> that has been plaguing LyX for some time. Go try latest cvs and tell
> me what happens. I am interested to know whether your favourite way of
> crashing LyX still works and whether editing still works as intended.

Well Jean-Marc I guess we need this to otherwise when doing Backspace()
in a situation like 'a | a' we get 'a|a' instead of 'a| a'. What do you
think?

Sorry no unified patch I only used my VC facility inside XEmacs to
visualize the diff of the actual Buffer to the last version ;)

++++++++++++++++ mail continues below!!! ++++++++++++++++++++++++++

Index: text.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text.C,v
retrieving revision 1.43
diff -c -r1.43 text.C
*** text.C      2000/03/28 10:22:19     1.43
--- text.C      2000/03/28 11:04:54
***************
*** 3453,3459 ****
                SetUndo(Undo::DELETE, 
                        cursor.par->ParFromPos(cursor.pos)->previous, 
                        cursor.par->ParFromPos(cursor.pos)->next); 
!               CursorLeftIntern();
                
                // some insets are undeletable here
                if (cursor.par->GetChar(cursor.pos) == LyXParagraph::META_INSET) {
--- 3453,3471 ----
                SetUndo(Undo::DELETE, 
                        cursor.par->ParFromPos(cursor.pos)->previous, 
                        cursor.par->ParFromPos(cursor.pos)->next); 
!               // We used to do CursorLeftIntern() here, but it is
!               // not a good idea since it triggers the auto-delete
!               // mechanism. So we do a CursorLeftIntern()-lite,
!               // without the dreaded mechanism. (JMarc)
!               if (cursor.pos > 0) {
!                       SetCursorIntern(cursor.par, cursor.pos - 1);
!               }
!               else if (cursor.par->Previous()) { 
!                       // steps into the above paragraph.
!                       SetCursorIntern(cursor.par->Previous(), 
!                                       cursor.par->Previous()->Last());
!               }
! //            CursorLeftIntern();
                
                // some insets are undeletable here
                if (cursor.par->GetChar(cursor.pos) == LyXParagraph::META_INSET) {

++++++++++++++++++++++++++++++++++++++

And one more CursorPositioning problem try to move the Cursor to the Right
in this situation 'a | a' you'll see that the cursor ends up blinking in the
middle of the second 'a'.

     Jürgen

-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._

Dr. Jürgen Vigna                      E-Mail: [EMAIL PROTECTED]
Italienallee 13/N                     Tel:    +39-0471-450260
I-39100 Bozen                         Fax:    +39-0471-450296
ITALY                                 Web:    http://www.sad.it/~jug

There seems no plan because it is all plan.
                -- C.S. Lewis

-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._-._

Reply via email to