Skip to content

Commit d334249

Browse files
committed
fix: info box and more options box points at different elements after live preview scroll
1 parent a935f7f commit d334249

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/LiveDevelopment/BrowserScripts/RemoteFunctions.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3259,6 +3259,7 @@ function RemoteFunctions(config = {}) {
32593259
var _aiPromptBox;
32603260
var _imageRibbonGallery;
32613261
var _setup = false;
3262+
var _hoverLockTimer = null;
32623263

32633264
function onMouseOver(event) {
32643265
if (_validEvent(event)) {
@@ -3426,6 +3427,18 @@ function RemoteFunctions(config = {}) {
34263427
previouslyClickedElement = element;
34273428
}
34283429

3430+
function disableHoverListeners() {
3431+
window.document.removeEventListener("mouseover", onElementHover);
3432+
window.document.removeEventListener("mouseout", onElementHoverOut);
3433+
}
3434+
3435+
function enableHoverListeners() {
3436+
if (config.isProUser && (config.highlight || shouldShowHighlightOnHover())) {
3437+
window.document.addEventListener("mouseover", onElementHover);
3438+
window.document.addEventListener("mouseout", onElementHoverOut);
3439+
}
3440+
}
3441+
34293442
/**
34303443
* This function handles the click event on the live preview DOM element
34313444
* this just stops the propagation because otherwise users might not be able to edit buttons or hyperlinks etc
@@ -3438,6 +3451,18 @@ function RemoteFunctions(config = {}) {
34383451
event.preventDefault();
34393452
event.stopPropagation();
34403453
event.stopImmediatePropagation();
3454+
3455+
// clear any existing timer before starting new one
3456+
if (_hoverLockTimer) {
3457+
clearTimeout(_hoverLockTimer);
3458+
}
3459+
3460+
// disable hover listeners for 2 seconds to prevent info box conflicts
3461+
disableHoverListeners();
3462+
_hoverLockTimer = setTimeout(() => {
3463+
enableHoverListeners();
3464+
_hoverLockTimer = null;
3465+
}, 1500);
34413466
}
34423467
}
34433468

@@ -4245,6 +4270,7 @@ function RemoteFunctions(config = {}) {
42454270
"hasVisibleLivePreviewBoxes" : hasVisibleLivePreviewBoxes,
42464271
"dismissUIAndCleanupState" : dismissUIAndCleanupState,
42474272
"dismissImageRibbonGallery" : dismissImageRibbonGallery,
4273+
"enableHoverListeners" : enableHoverListeners,
42484274
"registerHandlers" : registerHandlers
42494275
};
42504276
}

src/LiveDevelopment/LiveDevMultiBrowser.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,7 @@ define(function (require, exports, module) {
714714
*/
715715
function dismissLivePreviewBoxes() {
716716
if (_protocol) {
717+
_protocol.evaluate("_LD.enableHoverListeners()"); // so that if hover lock is there it will get cleared
717718
_protocol.evaluate("_LD.dismissUIAndCleanupState()");
718719
_protocol.evaluate("_LD.dismissImageRibbonGallery()");
719720
}

0 commit comments

Comments
 (0)