Angus Leeming wrote:

> If memory serves me right, all insets should emit a signal from their
> destructor:

Indeed. Thanks!

>> A proof-of-concept fix is attached. It works only for "normal" delete
>> (the inset must not be selected, and the deletion must not cause a
>> paragraph merge. BTW, Dialogs::hideSlot() is currently not used.
> 
> Urgggg. When did that happen?

13 months ago:
http://www.lyx.org/cgi-bin/viewcvs.cgi/lyx-devel/src/frontends/Dialogs.C.diff?r1=1.31&r2=1.32

The thing to blame here is gcc: It should have noticed that hideSlot() was
unused.

>> Does anybody have an idea what to do now?
> 
> Connect the signal to the slot.

Done. If only every crash fix was so simple!


Georg
Index: src/frontends/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/ChangeLog,v
retrieving revision 1.279
diff -u -p -r1.279 ChangeLog
--- src/frontends/ChangeLog	11 May 2005 07:44:19 -0000	1.279
+++ src/frontends/ChangeLog	17 May 2005 15:20:38 -0000
@@ -1,3 +1,7 @@
+2005-04-17  Georg Baum  <[EMAIL PROTECTED]>
+
+	* Dialogs.C (Dialogs): (re-)connect hide() and hideSlot()
+
 2005-05-11  Martin Vermeer  <[EMAIL PROTECTED]>
 
 	* screen.[hC]: fix processEvents -caused screen update recursion
Index: src/frontends/Dialogs.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/Dialogs.C,v
retrieving revision 1.37
diff -u -p -r1.37 Dialogs.C
--- src/frontends/Dialogs.C	26 Apr 2005 11:12:17 -0000	1.37
+++ src/frontends/Dialogs.C	17 May 2005 15:20:38 -0000
@@ -69,6 +70,7 @@ Dialogs::Dialogs(LyXView & lyxview)
 {
 	// Connect signals
 	redrawGUI().connect(boost::bind(&Dialogs::redraw, this));
+	hideSignal().connect(boost::bind(&Dialogs::hideSlot, this, _1, _2));
 }
 
 

Reply via email to