Kayvan A. Sylvan wrote: > The math mode seems to work again (no superscript crash) --- I have > not tested extensively. > > I noticed the following: > > 1) selection does not seem to be giving visual feedback (i.e. I can > position > the cursor and then do SHIFT-down-arrow and BACKSPACE to delete some > text, but the selection is not highlighted).
It has been explicitely disabled for some reason. > 2) Clicking on some insets still seems to crash. I have a small example > file > attached. Click on the footnote. LyX crashes. The following patch should fix the crash. The culprit is that insetcollapsable::edit(x,y) should not call insettext::edit(cur,x,y) when opening (the inset was not visible before) but insettext::edit(cur, true). Also a couple of cursorPar() replaced by getPar(cur.par()). I see some coordinate-related problems, but no crash when opening/closing. Triple click gives a crash. Alfredo
? PosIterator.C-save ? PosIterator.h-save ? all.diff ? bfs.cpp ? files ? save ? frontends/screen.C-save Index: insets/insetcollapsable.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insetcollapsable.C,v retrieving revision 1.231 diff -u -p -u -r1.231 insetcollapsable.C --- insets/insetcollapsable.C 3 Feb 2004 17:12:34 -0000 1.231 +++ insets/insetcollapsable.C 3 Feb 2004 19:53:28 -0000 @@ -300,12 +300,13 @@ void InsetCollapsable::edit(LCursor & cu if (status_ == Collapsed) { setStatus(Open); } else { - if (y <= button_dim.y2) - y = 0; - else + if (y > button_dim.y2) { y += inset.ascent() - height_collapsed(); + inset.edit(cur, x, y); + return; + } } - inset.edit(cur, x, y); + inset.edit(cur, true); } Index: insets/insettext.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insettext.C,v retrieving revision 1.572 diff -u -p -u -r1.572 insettext.C --- insets/insettext.C 30 Jan 2004 11:41:04 -0000 1.572 +++ insets/insettext.C 3 Feb 2004 19:53:29 -0000 @@ -253,7 +253,7 @@ void InsetText::updateLocal(LCursor & cu lv->updateMenubar(); lv->updateToolbar(); if (old_par != cur.par()) { - lv->setLayout(text_.cursorPar()->layout()->name()); + lv->setLayout(text_.getPar(cur.par())->layout()->name()); old_par = cur.par(); } } @@ -287,7 +287,7 @@ void InsetText::edit(LCursor & cur, bool setViewCache(&cur.bv()); int const par = left ? 0 : paragraphs().size() - 1; int const pos = left ? 0 : paragraphs().back().size(); - text_.setCursor(par, pos); + text_.setCursor(cur.current(), par, pos); cur.clearSelection(); finishUndo(); sanitizeEmptyText(cur.bv());