surensp...@gmail.com wrote: > I current way I am implementing is that I save the Graphic a temporary > file,then to create a new thread ( using osl_createThread from > osl/thread.h ) and from within the new thread execute the external > application to open the temp ( using osl_executeProcess from > osl/process.h). Then on I poll for the exit of the process and after > exit, exit the new thread and main thread updates the graphic with the > new temporary image. But the current way blocks the main loop and I > end up getting an unresponsive libreoffice window which is not > desirable at all. > Hi Suren,
since you already create a separate thread for the editing - just fire it off, and send the main app a msg - like here: desktop/source/app/officeipcthread.cxx:289 (you'll probably replace STATIC_LINK with LINK, DECL_STATIC_LINK with DECL_LINK, and IMPL_STATIC_LINK_NOINSTANCE with IMPL_LINK) PostUserEvent adds an event into the main app msg queue, which then gets processed like any other input (mouse, keyboard) in the LibO mainloop. Also: just using osl_executeProcess() avoids idly spinning until the external app is finished. Your thread just blocks then. HTH, -- Thorsten
pgpM9DcOtSffs.pgp
Description: PGP signature
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice