Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] Cocoa SWT_AWT issues, and a new API proposal

Following up on the Browser issue, WebKit 4 now actively checks to see  
if it is on the main thread, and crashes your app if not!

Mail.app on the Mac was doing this, and they patched in a workaround  
as can be seen here:

https://bug-22976-attachments.webkit.org/attachment.cgi?id=26226

I've been thinking about how to use CocoaComponent to solve this.  
createNSViewLong() will be called on the main thread so you can create  
the Display, Shell, and your other widgets on the main thread, but  
once you do I am not sure that you can set up a readAndDispatch/sleep  
loop. You don't really need to, though, because the AWT will continue  
to fetch and deliver events to your Display since we subclassed the  
running AWT's NSApplication.

-- Scott


On Sep 21, 2009, at 10:54 AM, Scott Kovatch wrote:

> Test case 2 crashes. For whatever reason, WebViews can't be added to a
> window off the main thread.
>
> I expect Web Start to behave identically to the standalone cases, so
> if you add -XstartOnFirstThread to your VM options in the JNLP file
> and follow the patterns in test 1 you'll be okay.
>
> -- Scott
>
> On Sep 21, 2009, at 10:43 AM, Christopher Deckers wrote:
>
>> Scott,
>>
>> I see the bug is marked as fixed for the first test case. Could you
>> let us know the results of test case 2 as soon as you have them?
>>
>> There is also something that is quite important: how do those 2 test
>> cases work with WebStart? Is there anything special to do to make it
>> work with it (JNLP properties, etc)?
>>
>> Cheers,
>> -Christopher
>>
>>
>> On Mon, Sep 21, 2009 at 6:49 PM, Scott Kovatch <skovatch@xxxxxxxxx>
>> wrote:
>>>
>>> On Sep 21, 2009, at 7:22 AM, Silenio Quarti wrote:
>>>
>>>> I believe that detecting if  TransformProcessType()needs be called
>>>> should be done as this bug describes.
>>>>
>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=268687
>>>
>>> I agree, though that's a separate problem from what I was running
>>> into
>>> here.  In this case, we weren't calling TransformProcessType()
>>> because
>>> NSApplication.isRunning() returned true, but the AWT did not call it
>>> either because it detected that the app was started from thread  
>>> 0.  I
>>> wrote AWT startup to do the bare minimum if -XstartOnFirstThread was
>>> detected on the assumption that the SWT would be used.
>>>
>>> I can work on detecting whether or not TPT should be called, though.
>>> I had to make a similar change to the Carbon SWT for Flash Catalyst
>>> to
>>> work around a related problem.
>>>
>>>> As for documenting the rules, we can add something on the SWT FAQ  
>>>> or
>>>> to the java doc of SWT_AWT.java. It seems that we should not  
>>>> support
>>>> the case where the app is started without the -XstartOnFirstThread
>>>> option.
>>>
>>> Can you clarify a bit?  SWT_AWT should not support it or Display
>>> should not support being created off the main thread?
>>>
>>> -- Scott
>>>
>>>>> A few notes: display is created in the main method, as recommended
>>>>> by SWT. The Swing UI is created in the EDT, as recommended by AWT/
>>>>> Swing.
>>>>
>>>> Are these kinds of rules documented anywhere?  If devs "follow the
>>>> rules" as defined in this example, I don't have to make that many
>>>> changes to Shell or Display, except to detect when the Shell  
>>>> doesn't
>>>> own its window, as would be the case in the SWT_AWT new_Shell  
>>>> state.
>>>
>>> _______________________________________________
>>> platform-swt-dev mailing list
>>> platform-swt-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
>>>
>> _______________________________________________
>> platform-swt-dev mailing list
>> platform-swt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
>
> _______________________________________________
> platform-swt-dev mailing list
> platform-swt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/platform-swt-dev



Back to the top