src/java.desktop/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 46,55 ****
--- 46,57 ----
import java.util.HashSet;
import java.util.Map;
import java.util.Arrays;
+ import sun.awt.AWTAccessor;
+ import sun.awt.AWTAccessor.DropTargetContextAccessor;
import sun.util.logging.PlatformLogger;
import java.io.IOException;
import java.io.InputStream;
*** 311,331 ****
Component c = (Component)event.getSource();
DropTarget dt = c.getDropTarget();
Point hots = event.getPoint();
local = getJVMLocalSourceTransferable();
!
if (currentDTC != null) { // some wreckage from last time
! currentDTC.removeNotify();
currentDTC = null;
}
if (c.isShowing() && dt != null && dt.isActive()) {
currentDT = dt;
currentDTC = currentDT.getDropTargetContext();
! currentDTC.addNotify(this);
currentA = dt.getDefaultActions();
try {
((DropTargetListener)dt).dragEnter(new DropTargetDragEvent(currentDTC,
--- 313,334 ----
Component c = (Component)event.getSource();
DropTarget dt = c.getDropTarget();
Point hots = event.getPoint();
local = getJVMLocalSourceTransferable();
! DropTargetContextAccessor acc =
! AWTAccessor.getDropTargetContextAccessor();
if (currentDTC != null) { // some wreckage from last time
! acc.reset(currentDTC);
currentDTC = null;
}
if (c.isShowing() && dt != null && dt.isActive()) {
currentDT = dt;
currentDTC = currentDT.getDropTargetContext();
! acc.setDropTargetContextPeer(currentDTC, this);
currentA = dt.getDefaultActions();
try {
((DropTargetListener)dt).dragEnter(new DropTargetDragEvent(currentDTC,
*** 368,401 ****
protected void processExitMessage(SunDropTargetEvent event) {
Component c = (Component)event.getSource();
DropTarget dt = c.getDropTarget();
DropTargetContext dtc = null;
if (dt == null) {
currentDT = null;
currentT = null;
if (currentDTC != null) {
! currentDTC.removeNotify();
}
currentDTC = null;
return;
}
if (dt != currentDT) {
if (currentDTC != null) {
! currentDTC.removeNotify();
}
currentDT = dt;
currentDTC = dt.getDropTargetContext();
! currentDTC.addNotify(this);
}
dtc = currentDTC;
if (dt.isActive()) try {
--- 371,406 ----
protected void processExitMessage(SunDropTargetEvent event) {
Component c = (Component)event.getSource();
DropTarget dt = c.getDropTarget();
DropTargetContext dtc = null;
+ DropTargetContextAccessor acc =
+ AWTAccessor.getDropTargetContextAccessor();
if (dt == null) {
currentDT = null;
currentT = null;
if (currentDTC != null) {
! acc.reset(currentDTC);
}
currentDTC = null;
return;
}
if (dt != currentDT) {
if (currentDTC != null) {
! acc.reset(currentDTC);
}
currentDT = dt;
currentDTC = dt.getDropTargetContext();
! acc.setDropTargetContextPeer(currentDTC, this);
}
dtc = currentDTC;
if (dt.isActive()) try {
*** 407,417 ****
currentSA = DnDConstants.ACTION_NONE;
currentDA = DnDConstants.ACTION_NONE;
currentDT = null;
currentT = null;
! currentDTC.removeNotify();
currentDTC = null;
local = null;
dragRejected = false;
--- 412,422 ----
currentSA = DnDConstants.ACTION_NONE;
currentDA = DnDConstants.ACTION_NONE;
currentDT = null;
currentT = null;
! acc.reset(currentDTC);
currentDTC = null;
local = null;
dragRejected = false;
*** 438,466 ****
Component c = (Component)event.getSource();
Point hots = event.getPoint();
int id = event.getID();
DropTarget dt = c.getDropTarget();
DropTargetContext dtc = null;
if (c.isShowing() && (dt != null) && dt.isActive()) {
if (currentDT != dt) {
if (currentDTC != null) {
! currentDTC.removeNotify();
}
currentDT = dt;
currentDTC = null;
}
dtc = currentDT.getDropTargetContext();
if (dtc != currentDTC) {
if (currentDTC != null) {
! currentDTC.removeNotify();
}
currentDTC = dtc;
! currentDTC.addNotify(this);
}
currentA = currentDT.getDefaultActions();
try {
--- 443,473 ----
Component c = (Component)event.getSource();
Point hots = event.getPoint();
int id = event.getID();
DropTarget dt = c.getDropTarget();
DropTargetContext dtc = null;
+ DropTargetContextAccessor acc =
+ AWTAccessor.getDropTargetContextAccessor();
if (c.isShowing() && (dt != null) && dt.isActive()) {
if (currentDT != dt) {
if (currentDTC != null) {
! acc.reset(currentDTC);
}
currentDT = dt;
currentDTC = null;
}
dtc = currentDT.getDropTargetContext();
if (dtc != currentDTC) {
if (currentDTC != null) {
! acc.reset(currentDTC);
}
currentDTC = dtc;
! acc.setDropTargetContextPeer(currentDTC, this);
}
currentA = currentDT.getDefaultActions();
try {
*** 516,532 ****
if (c.isShowing() && dt != null && dt.isActive()) {
DropTargetContext dtc = dt.getDropTargetContext();
currentDT = dt;
if (currentDTC != null) {
! currentDTC.removeNotify();
}
currentDTC = dtc;
! currentDTC.addNotify(this);
currentA = dt.getDefaultActions();
synchronized(_globalLock) {
if ((local = getJVMLocalSourceTransferable()) != null)
setCurrentJVMLocalSourceTransferable(null);
--- 523,541 ----
if (c.isShowing() && dt != null && dt.isActive()) {
DropTargetContext dtc = dt.getDropTargetContext();
currentDT = dt;
+ DropTargetContextAccessor acc =
+ AWTAccessor.getDropTargetContextAccessor();
if (currentDTC != null) {
! acc.reset(currentDTC);
}
currentDTC = dtc;
! acc.setDropTargetContextPeer(currentDTC, this);
currentA = dt.getDefaultActions();
synchronized(_globalLock) {
if ((local = getJVMLocalSourceTransferable()) != null)
setCurrentJVMLocalSourceTransferable(null);
*** 685,695 ****
public synchronized void dropComplete(boolean success) {
if (dropStatus == STATUS_NONE) {
throw new InvalidDnDOperationException("No Drop pending");
}
! if (currentDTC != null) currentDTC.removeNotify();
currentDT = null;
currentDTC = null;
currentT = null;
currentA = DnDConstants.ACTION_NONE;
--- 694,706 ----
public synchronized void dropComplete(boolean success) {
if (dropStatus == STATUS_NONE) {
throw new InvalidDnDOperationException("No Drop pending");
}
! if (currentDTC != null) {
! AWTAccessor.getDropTargetContextAccessor().reset(currentDTC);
! }
currentDT = null;
currentDTC = null;
currentT = null;
currentA = DnDConstants.ACTION_NONE;