Re: [gtk+osx] gtk for a GNU/configure program?
Status: Beta
Brought to you by:
jralls
From: Bob I. <bo...@re...> - 2004-03-07 01:11:33
|
On Mar 6, 2004, at 5:29 PM, David Burnett wrote: > Bob Ippolito wrote: >> On Mar 6, 2004, at 10:00 AM, David Burnett wrote: >>> I can see a very good use for the patch. >>> The window manager problem is the reason gimp >>> plugins and extensions do not work. >> I'm gonna call bullshit on that one, unless extensions/plugins run in >> a separate process?? > I'll see your BS and raise you a d'oh :-) > > Gimp plugin/extensions *are* separate processes. In fact they are > separate programs that are run using execvp() and communicate > with gimp through g_io_channels. Yuck :-) Ok, sorry about that.. When I hear "plug-in", "extension", I think dynamically loadable code, because that's what it means to just about everything else. Well anyways, it's not really possible to do what you want and be user friendly at the same time.. if a gimp plugin had a GUI, it would run as a separate application (separate icon on the dock, etc.). I suppose you could have the shim info.plist set LSBackgroundOnly (or whatever it's called) to true, but it would still be a separate application and wouldn't be user friendly at all (you can't cycle to it, for example). GIMP just can't act like this on OS X and cooperate with WindowServer. >>> Stupid idea in the first place, not allowing command line >>> tool to have a GUI. >> This is all a non-issue, all that matters is >> - argv[0] points to a legitimate bundle somewhere >> - the bundle probably needs a correctly structured Info.plist >> > > Info.plist must name the executable in the CFBundleExecutable key > or the bundle must have the same name as the executable. It is supposed to name *an* executable. It doesn't affect what you're doing though, because the application will be launched by you, not by LaunchServices. As you probably know, argv[0] and the actual executable don't have to be the same thing, that is only a convention. execvp(plugin, {"/Full/path/to/shim.bundle/Contents/MacOS/fake", "arguments", "to", "plugin"}) > For gimp this would require major tinkerage with the gimp build process > to create the bundles for the plugins, hacks into gimp to get it to > call > the full path inside the bundle (running the bundle releases the > process) and users having to create bundles for any third party plugins > they want to build. A small hack to gimp is required, nothing else... but there are going to be lots of problems, anyway, no matter how you end up doing it. -bob |