  widget/windows/nsPIDragServiceWindows.idl |   46 +++++++++++++++++++++++++++
  widget/xpwidgets/nsBaseDragService.cpp    |   16 +++++++++-
  widget/xpwidgets/nsBaseDragService.h      |    9 ++---
- 15 files changed, 176 insertions(+), 49 deletions(-)
+ 15 files changed, 180 insertions(+), 49 deletions(-)
  create mode 100644 widget/nsPIDragService.idl
  create mode 100644 widget/windows/nsPIDragServiceWindows.idl
 

 
     // XXX: dropEffect should be updated per |operation|. 
     // As things stand though, |operation| isn't well handled within "our"
@@ -4606,13 +4609,15 @@ NSEvent* gLastDragMouseDownEvent = nil;
     // value for NSDragOperationGeneric that is passed by other applications.
     // All that said, NSDragOperationNone is still reliable.
     if (operation == NSDragOperationNone) {

+        nsCOMPtr<nsIDOMDataTransfer> dataTransfer;
+        dragSession->GetDataTransfer(getter_AddRefs(dataTransfer));
+        if (dataTransfer) {
+          nsCOMPtr<nsIDOMNSDataTransfer> dataTransferNS =
+                do_QueryInterface(dataTransfer);
+          if (dataTransferNS) {
+            dataTransferNS->SetDropEffectInt(nsIDragService::DRAGDROP_ACTION_NONE);
+          }
+        }
+      }
     }
