Slow down tab switch on drag

Avoid another tab being moved underneath the cursor if the target tab has different sidebox menu width, triggering another tab switch
This commit is contained in:
nathan 2023-02-22 14:31:41 -07:00
parent 34cc0ff5be
commit cd22b9aad6

View File

@ -358,10 +358,29 @@ window.egw_fw_ui_tab = function(_parent, _contHeaderDiv, _contDiv, _icon, _callb
// If dragging something over the tab, activate that app
var tab = this.headerDiv;
this.headerDiv.addEventListener('dragenter', (event) => {
this.headerDiv.addEventListener('dragenter', (event) =>
{
event.stopPropagation();
tab._callbackObject.call(tab);
if (!this.headerDiv.parentElement.dataset.dragblock)
{
this.headerDiv.parentElement.dataset.dragblock = true;
tab._callbackObject.call(tab);
}
tab.parentElement.addEventListener("dragend", dragBlockEnd)
tab.parentElement.addEventListener("dragleave", dragBlockEnd)
});
var dragBlockEnd = (e) =>
{
tab.parentElement.removeEventListener("dragend", dragBlockEnd);
tab.parentElement.removeEventListener("dragleave", dragBlockEnd);
window.clearTimeout(tab.parentElement.dataset.dragblock);
tab.parentElement.dataset.dragblock = window.setTimeout(() =>
{
tab.parentElement.removeAttribute("data-dragblock");
}, 100);
}
//Create the close button and append it to the header div