diff --git a/content/xbl/public/nsIXBLService.h b/content/xbl/public/nsIXBLService.h index 1908f005e4c8..22b9ca156d78 100644 --- a/content/xbl/public/nsIXBLService.h +++ b/content/xbl/public/nsIXBLService.h @@ -56,8 +56,9 @@ class nsIXBLDocumentInfo; class nsIURI; class nsIAtom; -#define NS_IXBLSERVICE_IID \ -{ 0x0b2e5289, 0xe7d8, 0x41f8, { 0x85, 0xa2, 0x8a, 0x57, 0x0b, 0x25, 0xf4, 0x95 } } +#define NS_IXBLSERVICE_IID \ + { 0x7157b300, 0xf49b, 0x4e7d, \ + { 0xac, 0x3a, 0xef, 0x8f, 0x20, 0x69, 0x6e, 0xb1 } } class nsIXBLService : public nsISupports { @@ -80,9 +81,8 @@ public: nsIURI* aBindingURI, PRBool aForceSyncLoad, nsIXBLDocumentInfo** aResult) = 0; - // Hooks up the global key and DragDrop event handlers to the document root. + // Hooks up the global key event handlers to the document root. NS_IMETHOD AttachGlobalKeyHandler(nsIDOMEventReceiver* aElement)=0; - NS_IMETHOD AttachGlobalDragHandler(nsIDOMEventReceiver* aElement)=0; }; diff --git a/content/xbl/src/Makefile.in b/content/xbl/src/Makefile.in index 6529b8314b4c..198e863ab2ea 100644 --- a/content/xbl/src/Makefile.in +++ b/content/xbl/src/Makefile.in @@ -87,7 +87,6 @@ CPPSRCS = \ nsXBLEventHandler.cpp \ nsXBLWindowHandler.cpp \ nsXBLWindowKeyHandler.cpp \ - nsXBLWindowDragHandler.cpp \ nsXBLPrototypeHandler.cpp \ nsXBLService.cpp \ nsBindingManager.cpp \ diff --git a/content/xbl/src/nsXBLService.cpp b/content/xbl/src/nsXBLService.cpp index 3ac67c8c63a8..f905e8687412 100644 --- a/content/xbl/src/nsXBLService.cpp +++ b/content/xbl/src/nsXBLService.cpp @@ -42,7 +42,6 @@ #include "nsNetUtil.h" #include "nsXBLService.h" #include "nsXBLWindowKeyHandler.h" -#include "nsXBLWindowDragHandler.h" #include "nsIInputStream.h" #include "nsINameSpaceManager.h" #include "nsHashtable.h" @@ -803,46 +802,6 @@ nsXBLService::AttachGlobalKeyHandler(nsIDOMEventReceiver* aReceiver) return NS_OK; } - -// -// AttachGlobalDragDropHandler -// -// Creates a new drag handler and prepares to listen to dragNdrop events on the given -// event receiver. -// -NS_IMETHODIMP -nsXBLService::AttachGlobalDragHandler(nsIDOMEventReceiver* aReceiver) -{ - // Create the DnD handler - nsXBLWindowDragHandler* handler; - NS_NewXBLWindowDragHandler(aReceiver, &handler); - if (!handler) - return NS_ERROR_FAILURE; - - nsCOMPtr systemGroup; - aReceiver->GetSystemEventGroup(getter_AddRefs(systemGroup)); - nsCOMPtr target = do_QueryInterface(aReceiver); - - // listen to these events - target->AddGroupedEventListener(NS_LITERAL_STRING("draggesture"), handler, - PR_FALSE, systemGroup); - target->AddGroupedEventListener(NS_LITERAL_STRING("dragenter"), handler, - PR_FALSE, systemGroup); - target->AddGroupedEventListener(NS_LITERAL_STRING("dragexit"), handler, - PR_FALSE, systemGroup); - target->AddGroupedEventListener(NS_LITERAL_STRING("dragover"), handler, - PR_FALSE, systemGroup); - target->AddGroupedEventListener(NS_LITERAL_STRING("dragdrop"), handler, - PR_FALSE, systemGroup); - - // Release. Do this so that only the event receiver holds onto the handler. - NS_RELEASE(handler); - - return NS_OK; - -} // AttachGlobalDragDropHandler - - NS_IMETHODIMP nsXBLService::Observe(nsISupports* aSubject, const char* aTopic, const PRUnichar* aSomeData) { diff --git a/content/xbl/src/nsXBLService.h b/content/xbl/src/nsXBLService.h index 20ef047fc8a0..3ccc215e56d1 100644 --- a/content/xbl/src/nsXBLService.h +++ b/content/xbl/src/nsXBLService.h @@ -83,7 +83,6 @@ class nsXBLService : public nsIXBLService, // Used by XUL key bindings and for window XBL. NS_IMETHOD AttachGlobalKeyHandler(nsIDOMEventReceiver* aElement); - NS_IMETHOD AttachGlobalDragHandler(nsIDOMEventReceiver* aElement); NS_DECL_NSIOBSERVER diff --git a/content/xbl/src/nsXBLWindowDragHandler.cpp b/content/xbl/src/nsXBLWindowDragHandler.cpp deleted file mode 100644 index 76e8fd4811d0..000000000000 --- a/content/xbl/src/nsXBLWindowDragHandler.cpp +++ /dev/null @@ -1,159 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - Mike Pinkerton (pinkerton@netscape.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsCOMPtr.h" -#include "nsXBLPrototypeHandler.h" -#include "nsXBLWindowDragHandler.h" -#include "nsXBLAtoms.h" -#include "nsIContent.h" -#include "nsIAtom.h" -#include "nsIDOMNSUIEvent.h" -#include "nsIDOMMouseEvent.h" -#include "nsIDOMEventReceiver.h" -#include "nsXBLService.h" -#include "nsIServiceManager.h" -#include "nsHTMLAtoms.h" -#include "nsIXBLDocumentInfo.h" -#include "nsIScriptGlobalObject.h" -#include "nsIDOMElement.h" - -nsXBLWindowDragHandler::nsXBLWindowDragHandler(nsIDOMEventReceiver* aReceiver) - : nsXBLWindowHandler(nsnull, aReceiver) -{ -} - -nsXBLWindowDragHandler::~nsXBLWindowDragHandler() -{ -} - -NS_IMPL_ISUPPORTS1(nsXBLWindowDragHandler, nsIDOMDragListener) - - -NS_IMETHODIMP -nsXBLWindowDragHandler::WalkHandlers(nsIDOMEvent* aDragEvent, nsIAtom* aEventType) -{ - nsCOMPtr evt = do_QueryInterface(aDragEvent); - PRBool prevent; - evt->GetPreventDefault(&prevent); - if (prevent) - return NS_OK; - - // Make sure our event is really a mouse event - nsCOMPtr dragEvent(do_QueryInterface(aDragEvent)); - if (!dragEvent) - return NS_OK; - - nsresult rv = EnsureHandlers(nsnull); - NS_ENSURE_SUCCESS(rv, rv); - - WalkHandlersInternal(aDragEvent, aEventType, mHandler); - - return NS_OK; -} - - -// -// DragGesture -// DragEnter -// DragExit -// DragOver -// DragDrop -// -// On the particular event, walk the handlers we loaded in to -// do something with the event. -// -nsresult -nsXBLWindowDragHandler::DragGesture(nsIDOMEvent* aDragEvent) -{ - return WalkHandlers(aDragEvent, nsXBLAtoms::draggesture); -} - -nsresult -nsXBLWindowDragHandler::DragEnter(nsIDOMEvent* aDragEvent) -{ - return WalkHandlers(aDragEvent, nsXBLAtoms::dragenter); -} - -nsresult -nsXBLWindowDragHandler::DragExit(nsIDOMEvent* aDragEvent) -{ - return WalkHandlers(aDragEvent, nsXBLAtoms::dragexit); -} - -nsresult -nsXBLWindowDragHandler::DragOver(nsIDOMEvent* aDragEvent) -{ - return WalkHandlers(aDragEvent, nsXBLAtoms::dragevent); -} - -nsresult -nsXBLWindowDragHandler::DragDrop(nsIDOMEvent* aDragEvent) -{ - return WalkHandlers(aDragEvent, nsXBLAtoms::dragdrop); -} - - -// -// EventMatched -// -// See if the given handler cares about this particular key event -// -PRBool -nsXBLWindowDragHandler::EventMatched (nsXBLPrototypeHandler* inHandler, - nsIAtom* inEventType, - nsIDOMEvent* inEvent) -{ - nsCOMPtr dragEvent ( do_QueryInterface(inEvent) ); - if ( dragEvent ) - return inHandler->MouseEventMatched(inEventType, dragEvent); - - return PR_FALSE; -} - - -/////////////////////////////////////////////////////////////////////////////////// - -nsresult -NS_NewXBLWindowDragHandler(nsIDOMEventReceiver* aReceiver, nsXBLWindowDragHandler** aResult) -{ - *aResult = new nsXBLWindowDragHandler(aReceiver); - if (!*aResult) - return NS_ERROR_OUT_OF_MEMORY; - NS_ADDREF(*aResult); - return NS_OK; -} diff --git a/content/xbl/src/nsXBLWindowDragHandler.h b/content/xbl/src/nsXBLWindowDragHandler.h deleted file mode 100644 index d56a3bee750f..000000000000 --- a/content/xbl/src/nsXBLWindowDragHandler.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - Mike Pinkerton (pinkerton@netscape.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef nsXBLWindowDragHandler_h__ -#define nsXBLWindowDragHandler_h__ - -#include "nsIDOMDragListener.h" -#include "nsIDOMElement.h" -#include "nsXBLWindowHandler.h" - -class nsIAtom; -class nsIDOMEventReceiver; -class nsXBLSpecialDocInfo; - -class nsXBLWindowDragHandler : public nsIDOMDragListener, - public nsXBLWindowHandler -{ -public: - nsXBLWindowDragHandler(nsIDOMEventReceiver* aReceiver); - virtual ~nsXBLWindowDragHandler(); - - // nsIDOMetc. - NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent) - { - return NS_OK; - }; - - NS_IMETHOD DragGesture(nsIDOMEvent* aMouseEvent) ; - NS_IMETHOD DragOver(nsIDOMEvent* aMouseEvent) ; - NS_IMETHOD DragEnter(nsIDOMEvent* aMouseEvent) ; - NS_IMETHOD DragExit(nsIDOMEvent* aMouseEvent) ; - NS_IMETHOD DragDrop(nsIDOMEvent* aMouseEvent) ; - - NS_DECL_ISUPPORTS - -protected: - NS_IMETHOD WalkHandlers(nsIDOMEvent* aKeyEvent, nsIAtom* aEventType); - - // check if the given handler cares about the given key event - PRBool EventMatched(nsXBLPrototypeHandler* inHandler, nsIAtom* inEventType, - nsIDOMEvent* inEvent); - -}; - -nsresult -NS_NewXBLWindowDragHandler(nsIDOMEventReceiver* aReceiver, - nsXBLWindowDragHandler** aResult); - -#endif diff --git a/dom/src/base/nsGlobalWindow.cpp b/dom/src/base/nsGlobalWindow.cpp index 2fd14e76f9aa..fd2ae789fef5 100644 --- a/dom/src/base/nsGlobalWindow.cpp +++ b/dom/src/base/nsGlobalWindow.cpp @@ -1173,11 +1173,6 @@ nsGlobalWindow::SetNewDocument(nsIDocument* aDocument, nsCOMPtr rec = do_QueryInterface(mChromeEventHandler); xblService->AttachGlobalKeyHandler(rec); - - // for now, the only way to get drag/drop is to use the XUL - // wrapper. There are just too many things that need to be - // added to hookup DnD with XBL (pinkerton) - //xblService->AttachGlobalDragHandler(rec); } } }