Try the below patch. The ehaviour seems totally random: sometimes a fixed-width cell allows the dialog, sometimes it doesn't. I have NO idea why. Juergen, Angus, can you look please ?
thanks john Index: FormParagraph.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormParagraph.C,v retrieving revision 1.48 diff -u -p -r1.48 FormParagraph.C --- FormParagraph.C 2002/01/08 15:32:11 1.48 +++ FormParagraph.C 2002/01/08 17:59:28 @@ -32,6 +32,7 @@ #include "ParagraphParameters.h" #include "input_validators.h" #include "helper_funcs.h" +#include "Alert.h" #include "support/lstrings.h" @@ -76,11 +77,20 @@ void FormParagraph::changedParagraph() Paragraph const * const p = getCurrentParagraph(); if (p == 0 || p == par_) return; -#warning Please someone of you GUII people have a look at this! - // shouldn't we chage the par_ pointer too? - // anyway for me the below function does just nothing! - // (Jug 20020108) + // if we don't change par_ here, moving back to the original + // paragraph won't re-enable apply(). However, if we DO, then + // restore will restore the current paragraph's options. Which + // do we want ? + + // we should somehow permanently disable the ok/apply instead ! + if (form() && form()->visible) { + if (p->inInset() && p->inInset()->forceDefaultParagraphs(p->inInset())) { + bc().invalid(); + return; + } + } + // For now don't bother checking if the params are different, // just activate the Apply button bc().valid(); @@ -101,6 +111,19 @@ FL_FORM * FormParagraph::form() const } +void FormParagraph::show() +{ + Paragraph const * p = getCurrentParagraph(); + + if (p->inInset() && p->inInset()->forceDefaultParagraphs(p->inInset())) { + Alert::alert(_("Paragraph parameter changes not allowed"), + _("The parameters of this paragraph cannot be changed.")); + return; + } + + FormBaseBD::show(); +} + void FormParagraph::build() { // the tabbed folder @@ -170,6 +193,15 @@ void FormParagraph::apply() if (!lv_->view()->available() || !dialog_.get()) return; + par_ = getCurrentParagraph(); + + if (par_->inInset() && par_->inInset()->forceDefaultParagraphs(par_->inInset())) { + Alert::alert(_("Paragraph parameter changes not allowed"), + _("The parameters of this paragraph cannot be changed.")); + return; + } + + VSpace space_top, space_bottom; LyXAlignment align; string labelwidthstring; Index: FormParagraph.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormParagraph.h,v retrieving revision 1.18 diff -u -p -r1.18 FormParagraph.h --- FormParagraph.h 2001/08/29 12:52:41 1.18 +++ FormParagraph.h 2002/01/08 17:59:28 @@ -31,6 +31,9 @@ class FormParagraph : public FormBaseBD public: /// FormParagraph(LyXView *, Dialogs *); +protected: + /// show the dialog + virtual void show(); private: /// Pointer to the actual instantiation of the ButtonController. virtual xformsBC & bc();