Bug 1387182 - fix border (empty space) compensation when dragging items in customize mode in RTL, r?jaws
MozReview-Commit-ID: AblsJGmu5zm
--- a/browser/components/customizableui/CustomizeMode.jsm
+++ b/browser/components/customizableui/CustomizeMode.jsm
@@ -1704,20 +1704,21 @@ CustomizeMode.prototype = {
dragValue = "after";
} else {
dragOverItem = targetParent.children[position];
if (targetAreaType == "toolbar") {
// Check if the aDraggedItem is hovered past the first half of dragOverItem
let itemRect = this._dwu.getBoundsWithoutFlushing(dragOverItem);
let dropTargetCenter = itemRect.left + (itemRect.width / 2);
let existingDir = dragOverItem.getAttribute("dragover");
+ let dirFactor = this._dir == "ltr" ? 1 : -1;
if (existingDir == "before") {
- dropTargetCenter += (parseInt(dragOverItem.style.borderInlineStartWidth) || 0) / 2;
+ dropTargetCenter += (parseInt(dragOverItem.style.borderInlineStartWidth) || 0) / 2 * dirFactor;
} else {
- dropTargetCenter -= (parseInt(dragOverItem.style.borderInlineEndWidth) || 0) / 2;
+ dropTargetCenter -= (parseInt(dragOverItem.style.borderInlineEndWidth) || 0) / 2 * dirFactor;
}
let before = this._dir == "ltr" ? aEvent.clientX < dropTargetCenter : aEvent.clientX > dropTargetCenter;
dragValue = before ? "before" : "after";
} else if (targetAreaType == "menu-panel") {
let itemRect = this._dwu.getBoundsWithoutFlushing(dragOverItem);
let dropTargetCenter = itemRect.top + (itemRect.height / 2);
let existingDir = dragOverItem.getAttribute("dragover");
if (existingDir == "before") {