Hello, AWT Team. Please, review an updated fix for: http://bugs.sun.com/view_bug.do?bug_id=8005405 at http://cr.openjdk.java.net/~pchelko/8005405/webrev.01/
Sergey suggested to simplify the loop which computes the component offset. I simplified it and deleted the check that a peer is an instance of LWComponentPeer because as I understand it is always true for a root component in the hierarchy on the mac. The updated fix is tested on toy apps and on netbeans. With best regards, Petr. On Jan 23, 2013, at 6:35 PM, Petr Pchelko wrote: > Hello, AWT team. > > Please, review the fix for the issue > http://bugs.sun.com/view_bug.do?bug_id=8005405 > The fix is available at: > http://cr.openjdk.java.net/~pchelko/8005405/webrev.00/ > > 2 problem existed: > 1. Calculation of the dragOrigin and componentOffset relied on the > component.isLightweight() method, which considers all the AWT components > heavyweight on Mac, however we really wanted there to find the component > which has a real NSView or NSWindow under it. Replacing it with instanceof > Window solves the problem. > 2. On the native level the dragOrigin and location of the dragEvent > were calculated without respect to the fact than Cocoa coordinate system is > flipped. > > The fix is tested on toy apps with both AWT and Swing components. Also I have > run netbeans on the JDK with this fix and all drag images look good. > > With best regards. Petr.
