Operate drag and drop of pinned tabs more correctly
This commit is contained in:
parent
8e37edc535
commit
5e09e88bb2
@ -410,7 +410,13 @@
|
|||||||
collectAlignedTabs : function TDU_collectAlignedTabs(tabs, context)
|
collectAlignedTabs : function TDU_collectAlignedTabs(tabs, context)
|
||||||
{
|
{
|
||||||
context.allAnimatedTabs = tabs;
|
context.allAnimatedTabs = tabs;
|
||||||
var base = context.draggedTab.boxObject[context.align];
|
var baseTab = context.draggedTab;
|
||||||
|
if (!baseTab.pinned)
|
||||||
|
return tabs;
|
||||||
|
|
||||||
|
// With Tree Style Tabs, pinned tabs are shown with multiple rows.
|
||||||
|
// We should animate only tabs in the same row.
|
||||||
|
var base = baseTab.boxObject[context.align];
|
||||||
return tabs.filter(function(aTab) {
|
return tabs.filter(function(aTab) {
|
||||||
return aTab.boxObject[context.align] == base;
|
return aTab.boxObject[context.align] == base;
|
||||||
});
|
});
|
||||||
|
@ -268,11 +268,16 @@ catch(e) {
|
|||||||
|
|
||||||
let draggedTab = aEvent.dataTransfer && aEvent.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
let draggedTab = aEvent.dataTransfer && aEvent.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
if (draggedTab._dragData) {
|
if (draggedTab._dragData) {
|
||||||
let tabs = sv.getTabs(b).filter(function(aTab) {
|
let sameTypeUndraggedTabs = tabs.filter(function(aTab) {
|
||||||
return !aTab._dragData;
|
return !aTab._dragData && aTab.pinned == draggedTab.pinned;
|
||||||
});
|
});
|
||||||
tab = sv.getTabFromCoordinates(aEvent, tabs) ||
|
tab = draggedTab.pinned ?
|
||||||
sv.getTabFromCoordinates(aEvent);
|
// pinned tabs cannot be dropped to another pinned tab, so
|
||||||
|
// we can use the drop position calculated by "_animateTabMove()".
|
||||||
|
tabs[draggedTab._dragData.animDropIndex] :
|
||||||
|
// otherwise, we have to find "drop target" tab from screen coordinates.
|
||||||
|
sv.getTabFromCoordinates(aEvent, sameTypeUndraggedTabs) ||
|
||||||
|
sv.getTabFromCoordinates(aEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
var isTabMoveFromOtherWindow = aSourceTab && aSourceTab.ownerDocument != d;
|
var isTabMoveFromOtherWindow = aSourceTab && aSourceTab.ownerDocument != d;
|
||||||
|
Loading…
Reference in New Issue
Block a user