|
Lines 266-271
Link Here
|
| 266 |
TransferData[] allowedDataTypes = new TransferData[event.dataTypes.length]; |
266 |
TransferData[] allowedDataTypes = new TransferData[event.dataTypes.length]; |
| 267 |
System.arraycopy(event.dataTypes, 0, allowedDataTypes, 0, allowedDataTypes.length); |
267 |
System.arraycopy(event.dataTypes, 0, allowedDataTypes, 0, allowedDataTypes.length); |
| 268 |
notifyListeners(DND.DragEnter, event); |
268 |
notifyListeners(DND.DragEnter, event); |
|
|
269 |
if (control == null || control.isDisposed()) { |
| 270 |
OS.MoveMemory(pdwEffect, new int[] {COM.DROPEFFECT_NONE}, 4); |
| 271 |
return COM.S_FALSE; |
| 272 |
} |
| 273 |
|
| 269 |
refresh(); |
274 |
refresh(); |
| 270 |
if (event.detail == DND.DROP_DEFAULT) { |
275 |
if (event.detail == DND.DROP_DEFAULT) { |
| 271 |
event.detail = (allowedOperations & DND.DROP_MOVE) != 0 ? DND.DROP_MOVE : DND.DROP_NONE; |
276 |
event.detail = (allowedOperations & DND.DROP_MOVE) != 0 ? DND.DROP_MOVE : DND.DROP_NONE; |
|
Lines 307-313
Link Here
|
| 307 |
|
312 |
|
| 308 |
iDataObject.Release(); |
313 |
iDataObject.Release(); |
| 309 |
iDataObject = null; |
314 |
iDataObject = null; |
| 310 |
return COM.S_OK; |
315 |
|
|
|
316 |
if (control == null || control.isDisposed()) |
| 317 |
return COM.S_FALSE; |
| 318 |
else |
| 319 |
return COM.S_OK; |
| 311 |
} |
320 |
} |
| 312 |
|
321 |
|
| 313 |
int DragOver(int grfKeyState, int pt_x, int pt_y, int pdwEffect) { |
322 |
int DragOver(int grfKeyState, int pt_x, int pt_y, int pdwEffect) { |
|
Lines 334-339
Link Here
|
| 334 |
event.dataType = selectedDataType; |
343 |
event.dataType = selectedDataType; |
| 335 |
} |
344 |
} |
| 336 |
notifyListeners(event.type, event); |
345 |
notifyListeners(event.type, event); |
|
|
346 |
if (control == null || control.isDisposed()) { |
| 347 |
OS.MoveMemory(pdwEffect, new int[] {COM.DROPEFFECT_NONE}, 4); |
| 348 |
return COM.S_FALSE; |
| 349 |
} |
| 337 |
refresh(); |
350 |
refresh(); |
| 338 |
if (event.detail == DND.DROP_DEFAULT) { |
351 |
if (event.detail == DND.DROP_DEFAULT) { |
| 339 |
event.detail = (allowedOperations & DND.DROP_MOVE) != 0 ? DND.DROP_MOVE : DND.DROP_NONE; |
352 |
event.detail = (allowedOperations & DND.DROP_MOVE) != 0 ? DND.DROP_MOVE : DND.DROP_NONE; |
|
Lines 369-374
Link Here
|
| 369 |
event.item = effect.getItem(pt_x, pt_y); |
382 |
event.item = effect.getItem(pt_x, pt_y); |
| 370 |
event.detail = DND.DROP_NONE; |
383 |
event.detail = DND.DROP_NONE; |
| 371 |
notifyListeners(DND.DragLeave, event); |
384 |
notifyListeners(DND.DragLeave, event); |
|
|
385 |
if (control == null || control.isDisposed()){ |
| 386 |
OS.MoveMemory(pdwEffect, new int[] {COM.DROPEFFECT_NONE}, 4); |
| 387 |
return COM.S_FALSE; |
| 388 |
} |
| 372 |
refresh(); |
389 |
refresh(); |
| 373 |
|
390 |
|
| 374 |
event = new DNDEvent(); |
391 |
event = new DNDEvent(); |
|
Lines 385-390
Link Here
|
| 385 |
event.dataType = selectedDataType; |
402 |
event.dataType = selectedDataType; |
| 386 |
event.detail = selectedOperation; |
403 |
event.detail = selectedOperation; |
| 387 |
notifyListeners(DND.DropAccept,event); |
404 |
notifyListeners(DND.DropAccept,event); |
|
|
405 |
if (control == null || control.isDisposed()){ |
| 406 |
OS.MoveMemory(pdwEffect, new int[] {COM.DROPEFFECT_NONE}, 4); |
| 407 |
return COM.S_FALSE; |
| 408 |
} |
| 409 |
|
| 388 |
refresh(); |
410 |
refresh(); |
| 389 |
|
411 |
|
| 390 |
selectedDataType = null; |
412 |
selectedDataType = null; |
|
Lines 425-430
Link Here
|
| 425 |
} finally { |
447 |
} finally { |
| 426 |
OS.ImageList_DragShowNolock(true); |
448 |
OS.ImageList_DragShowNolock(true); |
| 427 |
} |
449 |
} |
|
|
450 |
if (control == null || control.isDisposed()){ |
| 451 |
OS.MoveMemory(pdwEffect, new int[] {COM.DROPEFFECT_NONE}, 4); |
| 452 |
return COM.S_FALSE; |
| 453 |
} |
| 428 |
refresh(); |
454 |
refresh(); |
| 429 |
selectedOperation = DND.DROP_NONE; |
455 |
selectedOperation = DND.DROP_NONE; |
| 430 |
if ((allowedOperations & event.detail) == event.detail) { |
456 |
if ((allowedOperations & event.detail) == event.detail) { |