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());

Reply via email to