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

Attachment: pgpM9DcOtSffs.pgp
Description: PGP signature

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to