1
1
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
2
- index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0947aa55a 100644
2
+ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..9022f3f566e8829fa8d3c5a58f0300ab96869073 100644
3
3
--- a/browser/components/tabbrowser/content/tabs.js
4
4
+++ b/browser/components/tabbrowser/content/tabs.js
5
5
@@ -289,6 +289,7 @@
@@ -360,11 +360,11 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
360
360
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
361
361
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
362
362
+ let essential = draggedTab.hasAttribute("zen-essential");
363
- + const isDraggingFolder = isTabGroupLabel(draggedTab) || draggedTab.group?.isZenFolder;
363
+ + const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
364
364
let tabs = this.ariaFocusableItems.slice(
365
365
- isPinned ? 0 : numPinned,
366
366
- isPinned ? numPinned : undefined
367
- + isPinned ? ( essential ? 0 : gBrowser._numZenEssentials) : undefined ,
367
+ + ( isPinned && essential) ? 0 : gBrowser._numZenEssentials,
368
368
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
369
369
);
370
370
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
@@ -457,7 +457,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
457
457
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
458
458
let shouldMoveOver = overlapPercent > moveOverThreshold;
459
459
if (logicalForward && shouldMoveOver) {
460
- @@ -2656,23 +2738,6 @@
460
+ @@ -2656,44 +2738,21 @@
461
461
462
462
// If dragging a group over another group, don't make it look like it is
463
463
// possible to drop the dragged group inside the other group.
@@ -481,8 +481,14 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
481
481
482
482
// Constrain drop direction at the boundary between pinned and
483
483
// unpinned tabs so that they don't mix together.
484
- @@ -2686,14 +2751,13 @@
485
- }
484
+ let isOutOfBounds = isPinned
485
+ ? dropElement.elementIndex >= numPinned
486
+ : dropElement.elementIndex < numPinned;
487
+ - if (isOutOfBounds) {
488
+ - // Drop after last pinned tab
489
+ - dropElement = this.ariaFocusableItems[numPinned - 1];
490
+ - dropBefore = false;
491
+ - }
486
492
}
487
493
488
494
- if (
@@ -501,7 +507,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
501
507
// When dragging tab(s) over an ungrouped tab, signal to the user
502
508
// that dropping the tab(s) will create a new tab group.
503
509
shouldCreateGroupOnDrop =
504
- @@ -2703,12 +2767 ,6 @@
510
+ @@ -2703,12 +2762 ,6 @@
505
511
overlapPercent > dragOverGroupingThreshold;
506
512
507
513
if (shouldCreateGroupOnDrop) {
@@ -514,7 +520,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
514
520
} else {
515
521
this.removeAttribute("movingtab-createGroup");
516
522
document
517
- @@ -2735,19 +2793 ,14 @@
523
+ @@ -2735,19 +2788 ,14 @@
518
524
dropElement = dropElementGroup;
519
525
colorCode = undefined;
520
526
} else if (isTabGroupLabel(dropElement)) {
@@ -542,7 +548,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
542
548
}
543
549
this.#setDragOverGroupColor(colorCode);
544
550
this.toggleAttribute("movingtab-ungroup", !colorCode);
545
- @@ -2769,15 +2822 ,24 @@
551
+ @@ -2769,15 +2817 ,24 @@
546
552
// Shift background tabs to leave a gap where the dragged tab
547
553
// would currently be dropped.
548
554
for (let item of tabs) {
@@ -568,7 +574,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
568
574
}
569
575
item.style.transform = transform;
570
576
}
571
- @@ -2830,12 +2892 ,14 @@
577
+ @@ -2830,12 +2887 ,14 @@
572
578
);
573
579
}
574
580
@@ -585,7 +591,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
585
591
586
592
for (let item of this.ariaFocusableItems) {
587
593
if (isTabGroupLabel(item)) {
588
- @@ -2843,6 +2907 ,18 @@
594
+ @@ -2843,6 +2902 ,18 @@
589
595
item = item.parentElement;
590
596
}
591
597
item.style.transform = "";
@@ -604,7 +610,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
604
610
item.removeAttribute("dragover-createGroup");
605
611
}
606
612
this.removeAttribute("movingtab-createGroup");
607
- @@ -2889,7 +2965 ,7 @@
613
+ @@ -2889,7 +2960 ,7 @@
608
614
let postTransitionCleanup = () => {
609
615
movingTab._moveTogetherSelectedTabsData.animate = false;
610
616
};
@@ -613,7 +619,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
613
619
postTransitionCleanup();
614
620
} else {
615
621
let onTransitionEnd = transitionendEvent => {
616
- @@ -3062,7 +3138 ,7 @@
622
+ @@ -3062,7 +3133 ,7 @@
617
623
}
618
624
619
625
_notifyBackgroundTab(aTab) {
@@ -622,7 +628,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
622
628
return;
623
629
}
624
630
625
- @@ -3171,7 +3247 ,10 @@
631
+ @@ -3171,7 +3242 ,10 @@
626
632
#getDragTarget(event, { ignoreSides = false } = {}) {
627
633
let { target } = event;
628
634
while (target) {
@@ -634,7 +640,7 @@ index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..f8e190aaae14b23bd1a50573f61114a0
634
640
break;
635
641
}
636
642
target = target.parentNode;
637
- @@ -3188,6 +3267 ,9 @@
643
+ @@ -3188,6 +3262 ,9 @@
638
644
return null;
639
645
}
640
646
}
0 commit comments