Looks fine to me. Thanks.

--
best regards,
Anthony

On 07/12/2013 05:16 PM, Petr Pchelko wrote:
Hello, Anthony.

The fix looks good to me. BTW, could we provide some meaningful message with the 
InvalidDnDOperationException ? E.g. state that it's unsupported for this window or something like 
this? Also, the comments "// Unsupported" after the if()return; could be better worded as 
"Unsupported for a window w/o a native view (plugin)".
I've updated the fix. The new version is available here:
http://cr.openjdk.java.net/~pchelko/8020371/webrev.02/

With best regards. Petr.

On Jul 11, 2013, at 6:11 PM, Anthony Petrov wrote:

Hi Petr,

The fix looks good to me. BTW, could we provide some meaningful message with the 
InvalidDnDOperationException ? E.g. state that it's unsupported for this window or something like 
this? Also, the comments "// Unsupported" after the if()return; could be better worded as 
"Unsupported for a window w/o a native view (plugin)".

--
best regards,
Anthony

On 07/11/13 17:50, Petr Pchelko wrote:
Hello, Artem.

I've updated the fix, the new version is here:
http://cr.openjdk.java.net/~pchelko/8020371/webrev.01/

1. Are CDropTarget and CDragSourceContextPeer ready to handle the case, when 
their nativePtr is 0?
        1. CDropTarget: it's absolutely ready, it has only create and release 
methods which are ready to have a nativePtr=0.
        In native we create a delegate and set it as the DropTarget to the 
View. This DropTarget get's notified when NSView see some DnD operation.
        So we cannot and should not set it for applets.

        2. CDragSourceContextPeer - it has only one public method: startDrag 
which could be called when a DragGestureRecognizer recognizes the Drag. In 
applets it could never happen,
        so the CDragSourceContextPeer wouldn't event be created. I'be updated 
it just to make sure we would never get a native crash with 0 viewPtr.

2. Lines 110-113 in CDragSourceContextPeer should be better moved to before 
line 140.
        I've updated the fix.

3. It's unclear if CDropTarget and CDragSourceContextPeer should be used for 
lightweight components at all. How lightweight components are handled on other 
platforms.?
Not sure about other platforms, but on Mac it works as follows:
        When a DropTarget is set to a lightweight component we set to it's peer 
and traverse the tree up until we get a non-lightweight peer. And create, 
update (or don't update) the
        CDropTarget for that peer. The CDragSourceContextPeer is a singleton. 
When DnD is started we update the trigger in it. The trigger could be any 
component. To get native support
        we traverse up the tree from the trigger t get a first heavyweight 
component and use it as a native peer for DnD.

I\m not sure I've answered your question thought.
        
With best regards. Petr.

On Jul 11, 2013, at 4:15 PM, Artem Ananiev wrote:

Hi, Petr,

I'm not an expert in this code, so a few questions about the fix:

1. Are CDropTarget and CDragSourceContextPeer ready to handle the case, when 
their nativePtr is 0?

2. Lines 110-113 in CDragSourceContextPeer should be better moved to before 
line 140.

3. It's unclear if CDropTarget and CDragSourceContextPeer should be used for 
lightweight components at all. How lightweight components are handled on other 
platforms.?

Thanks,

Artem

On 7/11/2013 1:51 PM, Petr Pchelko wrote:
Hello, AWT Team.

Please review the fix for the issue:
http://bugs.sun.com/view_bug.do?bug_id=8020371
(It's recently created, so it might not be visible on bugs.sum.com yet)
The fix is available at:
http://cr.openjdk.java.net/~pchelko/8020371/webrev/

The problem:
We currently do not support DnD in applets on Mac, so IllegalArgumentException 
was thrown. If you explicitly call component.setDropTarget(new DropTarget()) 
the applet would fail to start due to this exception.

The solution:
The fix removes the exception and silently ignores unsupported DnD 
initialization.
DnD does not start to work, however at least an applet could be started.
However, I'm not sure if we should print a warning about unsupported DnD. What 
do you think?

With best regards. Petr.



Reply via email to