From eada39df34c50d3f8b95bd479cc548f1dd056e35 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 21 Oct 1998 15:42:05 +0000 Subject: [PATCH] Added fluid patch from Bill Spitzak; this moves the callback code down before the widgets that use them so that include files will get included properly. git-svn-id: file:///fltk/svn/fltk/trunk@29 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- fluid/Fl_Function_Type.cxx | 2 +- fluid/code.cxx | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/fluid/Fl_Function_Type.cxx b/fluid/Fl_Function_Type.cxx index 21bdb5b37..3576e837b 100644 --- a/fluid/Fl_Function_Type.cxx +++ b/fluid/Fl_Function_Type.cxx @@ -208,7 +208,7 @@ void Fl_Function_Type::write_code2() { if (ismain()) { if (havewidgets) write_c(" w->show(argc, argv);\n"); write_c(" return Fl::run();\n"); - } else if (havewidgets && !constructor) + } else if (havewidgets && !constructor && !return_type) write_c(" return w;\n"); write_c("}\n"); indentation = 0; diff --git a/fluid/code.cxx b/fluid/code.cxx index a8028acc1..5a5312528 100644 --- a/fluid/code.cxx +++ b/fluid/code.cxx @@ -243,8 +243,14 @@ int write_code(const char *s, const char *t) { if (t && include_H_from_C) write_c("#include \"%s\"\n", filename_name(t)); - for (p = Fl_Type::first; p; p = p->next) p->write_static(); - for (p = Fl_Type::first; p;) p = write_code(p); + for (p = Fl_Type::first; p;) { + // write all static data for this & all children first + p->write_static(); + for (Fl_Type* q = p->next; q && q->level > p->level; q = q->next) + q->write_static(); + // then write the nested code: + p = write_code(p); + } if (!s) return 1; int x = fclose(code_file);