> The dbus support is possible on Mac (I got that working), but now it fails on the X11 Embed widget, which will not work. So the passing of information to running GUI from another CL instance can > still be done, but is there a more portable way to do this (will this method work on Windows as well in the future)?
There is no portable way for embedding widgets between multiple processes.
XEmbed* is the way to do it on Linux. I don't know if there are other solution for OS X or Windows.
Currently the implementation has two different classes for starting plugins:
- one for starting plugins "inline" in the same thread
- one for starting them in separate threads and embedding the widgets with XEmbed* doing the IPC with DBus
If somebody got an idea how to realize it on any other platform it should be straight forward to integrate a third/fourth.
> Is there a good stable tag or commit where this feature doesn't exist, because there are some people wanting to use ros_gui now on Mac.
Sadly no. You could go to a revision which was before that feature was added.
But it is very likely that you might face a lot of other bugs which have been resolved in the meantime.
I will try to look into this today or tomorrow and enable the usage of XEmbed only when the feature is available.
It should be pretty easy to make it optional as it only integrated in the PluginManager class.
From a short look to the source it might be sufficient to comment the following lines in src/rosgui/PluginManager.py: 39, 169-170.
Would you like to try that?