[Pkg-mozext-commits] [tabmixplus] 40/107: Follow up bug 1207594 - Drop a link on tab bar doesn't work (link from external application)
David Prévot
taffit at moszumanska.debian.org
Tue Dec 29 19:02:48 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository tabmixplus.
commit d52999060650ad7acd60c9ee70a62ad1e21a34dd
Author: onemen <tabmix.onemen at gmail.com>
Date: Fri Oct 30 12:40:29 2015 +0200
Follow up bug 1207594 - Drop a link on tab bar doesn't work (link from external application)
---
chrome/content/minit/minit.js | 50 +++++++++++--------------------------------
1 file changed, 13 insertions(+), 37 deletions(-)
diff --git a/chrome/content/minit/minit.js b/chrome/content/minit/minit.js
index 20afca4..419431e 100644
--- a/chrome/content/minit/minit.js
+++ b/chrome/content/minit/minit.js
@@ -115,7 +115,7 @@ var TMP_tabDNDObserver = {
return;
}
- var tab = gBrowser.tabContainer._getDragTargetTab(event);
+ var tab = gBrowser.tabContainer._getDragTargetTab(event, false);
if (!tab || this._isCustomizing)
return;
@@ -192,7 +192,7 @@ var TMP_tabDNDObserver = {
}
var isCopy = this.isCopyDropEffect(dt, event, draggeType);
- var effects = this._setEffectAllowedForDataTransfer(event, draggeType);
+ var effects = this._getDropEffectForTabDrag(event);
var replaceTab = (left_right == -1);
/* we don't allow to drop link on lock tab.
@@ -294,7 +294,7 @@ var TMP_tabDNDObserver = {
}
if (draggeType == this.DRAG_LINK) {
- let tab = tabBar._getDragTargetTab(event);
+ let tab = tabBar._getDragTargetTab(event, true);
if (tab && tab.linkedBrowser.currentURI.spec != "about:customizing") {
if (!this._dragTime)
this._dragTime = Date.now();
@@ -764,37 +764,12 @@ var TMP_tabDNDObserver = {
/*
* helper functions
*/
- _setEffectAllowedForDataTransfer: function minit_setEffectAllowed(aEvent, aDraggeType) {
- var dt = aEvent.dataTransfer;
- // Disallow dropping multiple items
- if (dt.mozItemCount > 1)
- return (dt.effectAllowed = "none");
-
- var types = dt.mozTypesAt(0);
- // move or copy tab
- if (types[0] == this.TAB_DROP_TYPE) {
- let sourceNode = dt.mozGetDataAt(this.TAB_DROP_TYPE, 0);
- if ((aDraggeType == this.DRAG_TAB_IN_SAME_WINDOW && aEvent.target == sourceNode) ||
- // Do not allow transfering a private tab to a non-private window
- // and vice versa.
- (Tabmix.isVersion(200) && PrivateBrowsingUtils.isWindowPrivate(window) !=
- PrivateBrowsingUtils.isWindowPrivate(sourceNode.ownerDocument.defaultView))) {
- return (dt.effectAllowed = "none");
- }
-
- if (Tabmix.isVersion(310) && window.gMultiProcessBrowser !=
- sourceNode.ownerDocument.defaultView.gMultiProcessBrowser)
- return (dt.effectAllowed = "none");
-
- let copyModifier = Tabmix.isVersion(390) &&
- gBrowser.AppConstants.platform == "macosx" ? aEvent.altKey : aEvent.ctrlKey;
- return (dt.effectAllowed = copyModifier ? "copy" : "move");
- }
-
- if (browserDragAndDrop.canDropLink(aEvent)) {
- return (dt.effectAllowed = dt.dropEffect = "link");
+ _getDropEffectForTabDrag: function(event) {
+ let tabBar = gBrowser.tabContainer;
+ if (Tabmix.isVersion(440)) {
+ return tabBar._getDropEffectForTabDrag(event);
}
- return (dt.effectAllowed = "none");
+ return tabBar._setEffectAllowedForDataTransfer(event);
},
getSourceNode: function TMP_getSourceNode(aDataTransfer) {
@@ -807,11 +782,12 @@ var TMP_tabDNDObserver = {
isCopyDropEffect: function(dt, event, type) {
let isCopy = dt.dropEffect == "copy";
if (isCopy && type == this.DRAG_LINK) {
- // Dragging bookmark or livemark from the Bookmarks toolbar always have 'copy' dropEffect
+ // Dragging bookmark or livemark from the Bookmarks toolbar, or dragging
+ // data from external source, always have 'copy' dropEffect
let isCtrlKey = ((event.ctrlKey || event.metaKey) && !event.shiftKey && !event.altKey);
- let draggingBookmark = !isCtrlKey && dt.effectAllowed == "copyLink" &&
- dt.mozSourceNode && dt.mozSourceNode._placesNode;
- return isCopy && !draggingBookmark;
+ let move = !isCtrlKey && (dt.effectAllowed == "copyLink" &&
+ dt.mozSourceNode && dt.mozSourceNode._placesNode || !dt.mozSourceNode);
+ return !move;
}
return isCopy;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git
More information about the Pkg-mozext-commits
mailing list