diff --git a/browser/components/places/content-shim/browserShim.xul b/browser/components/places/content-shim/browserShim.xul
index 716fed802bc3..0816b7be7013 100755
--- a/browser/components/places/content-shim/browserShim.xul
+++ b/browser/components/places/content-shim/browserShim.xul
@@ -1,6 +1,7 @@
+
diff --git a/browser/components/places/content/controller.js b/browser/components/places/content/controller.js
index 176c92ab77d0..e8984ac10bed 100755
--- a/browser/components/places/content/controller.js
+++ b/browser/components/places/content/controller.js
@@ -1305,11 +1305,17 @@ var PlacesController = {
/**
* Get a TransferDataSet containing the content of the selection that can be
* dropped elsewhere.
+ * @param dragAction
+ * The action to happen when dragging, i.e. copy
* @returns A TransferDataSet object that can be dragged and dropped
* elsewhere.
*/
- getTransferData: function PC_getTransferData() {
- var nodes = this._activeView.getCopyableSelection();
+ getTransferData: function PC_getTransferData(dragAction) {
+ var nodes = null;
+ if (dragAction == Ci.nsIDragService.DRAGDROP_ACTION_COPY)
+ nodes = this._activeView.getCopyableSelection();
+ else
+ nodes = this._activeView.getDragableSelection();
var dataSet = new TransferDataSet();
for (var i = 0; i < nodes.length; ++i) {
var node = nodes[i];
@@ -1450,10 +1456,15 @@ var PlacesController = {
* Drop functions are passed the view that is being dropped on.
*/
var PlacesControllerDragHelper = {
+ /**
+ * DOM Element currently being dragged over
+ */
+ currentDropTarget: null,
+
/**
* @returns The current active drag session. Returns null if there is none.
*/
- _getSession: function VO__getSession() {
+ getSession: function VO__getSession() {
var dragService =
Cc["@mozilla.org/widget/dragservice;1"].
getService(Ci.nsIDragService);
@@ -1476,7 +1487,7 @@ var PlacesControllerDragHelper = {
!PlacesController.nodeIsFolder(parent))
return false;
- var session = this._getSession();
+ var session = this.getSession();
if (session) {
if (orientation != NHRVO.DROP_ON)
var types = view.supportedDropTypes;
@@ -1531,7 +1542,7 @@ var PlacesControllerDragHelper = {
*/
onDrop: function PCDH_onDrop(sourceView, targetView, insertionPoint,
visibleInsertCount) {
- var session = this._getSession();
+ var session = this.getSession();
var copy = session.dragAction & Ci.nsIDragService.DRAGDROP_ACTION_COPY;
var transactions = [];
var xferable = this._initTransferable(targetView,
diff --git a/browser/components/places/content/menu.xml b/browser/components/places/content/menu.xml
index 4c34313d9543..2cdf7b204bb8 100755
--- a/browser/components/places/content/menu.xml
+++ b/browser/components/places/content/menu.xml
@@ -51,8 +51,6 @@
null
- null
- null
@@ -68,29 +66,53 @@
]]>