Hi,
It sounds to me like you are interested in
-[NSObject performSelectorOnMainThread:withObject:waitUntilDone:modes:].

-Ken

On Thu, Aug 13, 2009 at 12:38 PM, Frederik Slijkerman <
frede...@ultrafractal.com> wrote:

> Hi,
>
> I'm working on a Photoshop plugin that uses a Cocoa UI, while of course
> Photoshop is still Carbon currently. The plugin runs as a modal window
> pretty much all the time.
>
> Now I've run into a problem: when I post a custom event to the main event
> queue using [NSApp postEvent], it is never processed. As far as I can tell,
> this is because [NSApp runModalForWindow] calls into Carbon to actually run
> the modal window, and while Carbon does handle mouse, keyboard and timer
> messages fine (by sending them directly to the window involved), it
> apparently doesn't know anything about any Cocoa events that are waiting in
> the main event queue.
>
> Does this sound familiar to anyone? Is there any way I can work around
> this?
>
> This is the code I use to post the event:
>
>  NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined
>    location:NSZeroPoint modifierFlags:0 timestamp:0 windowNumber:0
>    context:0 subtype:0 data1:reinterpret_cast<NSInteger>(h)
>    data2:reinterpret_cast<NSInteger>(data)];
>  [NSApp postEvent:event atStart:NO];
>
> I've thought about replacing postEvent with a timer that would fire
> immediately, but it looks like this wouldn't work from a different thread,
> as timers work directly with NSRunLoop and NSRunLoop has a stern warning
> regarding thread safety...
>
> So basically what I'm looking for is a thread-safe way to add an event to
> the main event queue, in such a way that it will be processed even when a
> modal window is running, this all in a Carbon application.
>
> Thanks in advance!
>
> Best regards,
> Frederik Slijkerman
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/kenferry%40gmail.com
>
> This email sent to kenfe...@gmail.com
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to