I've wedded FLTK 1.3 to the Photoshop plug-in (CS5 SDK) and have been extremely
happy with write-once, use-many. Coding on the Mac has been straightforward
and I've just ported my UI to the PC. (Win7).
Here's the problem -- the plug-in (DLL) will run once. (64-bit or 32-bit
doesn't matter) The second time I invoke it, the UI fails to come up and I'm
stuck in some kind of infinite loop waiting for events that I cannot get
because there is no window.
I tried replacing Fl::run() with this construct:
Fl::flush(); //allow dialog to appear prior to event loop
while(window->visible())
Fl::wait();
Fl::flush();
It hasn't appeared to help. :(
It appears that the w->show() function on my window (and it can be as primitive
as an empty Fl_Window) simply fails. Fl_Double_Window fails, too.
As you can see above, I've added an Fl::flush() call after the w->show(), and
it still fails most of the time. Yet the w->shown() flag is TRUE at that
point. I can't tell if this is because of a w->hide() that puts the window
down from the previous execution or what.
Other tidbits -- Adobe loads the DLL and then leaves it open, so it isn't clear
that my environment is getting reinitialized. I've taken care to reinitialize
all of MY static initialization variables, but that hasn't made a difference.
Adobe's MessageBox function still works -- I can put up one of their windows
even when the w->show() function fails (and that is how I figured out that it
hadn't crashed at this point and that it didn't make it past the while-loop or
Fl:run().)
Is there some kind of cleanup call I should make on the way out from the first
time through?
I'm inside of a DLL at this point and have been called by someone else's app
(Photoshop), so we can't leave with exit();
Please help.
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs