Skip to content

Commit 778d41c

Browse files
committed
fix: info box and more options box points at different elements after live preview scroll
1 parent 9cfd89a commit 778d41c

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
@@ -3264,6 +3264,7 @@ function RemoteFunctions(config = {}) {
32643264
var _aiPromptBox;
32653265
var _imageRibbonGallery;
32663266
var _setup = false;
3267+
var _hoverLockTimer = null;
32673268

32683269
function onMouseOver(event) {
32693270
if (_validEvent(event)) {
@@ -3431,6 +3432,18 @@ function RemoteFunctions(config = {}) {
34313432
previouslyClickedElement = element;
34323433
}
34333434

3435+
function disableHoverListeners() {
3436+
window.document.removeEventListener("mouseover", onElementHover);
3437+
window.document.removeEventListener("mouseout", onElementHoverOut);
3438+
}
3439+
3440+
function enableHoverListeners() {
3441+
if (config.isProUser && (config.highlight || shouldShowHighlightOnHover())) {
3442+
window.document.addEventListener("mouseover", onElementHover);
3443+
window.document.addEventListener("mouseout", onElementHoverOut);
3444+
}
3445+
}
3446+
34343447
/**
34353448
* This function handles the click event on the live preview DOM element
34363449
* this just stops the propagation because otherwise users might not be able to edit buttons or hyperlinks etc
@@ -3443,6 +3456,18 @@ function RemoteFunctions(config = {}) {
34433456
event.preventDefault();
34443457
event.stopPropagation();
34453458
event.stopImmediatePropagation();
3459+
3460+
// clear any existing timer before starting new one
3461+
if (_hoverLockTimer) {
3462+
clearTimeout(_hoverLockTimer);
3463+
}
3464+
3465+
// disable hover listeners for 2 seconds to prevent info box conflicts
3466+
disableHoverListeners();
3467+
_hoverLockTimer = setTimeout(() => {
3468+
enableHoverListeners();
3469+
_hoverLockTimer = null;
3470+
}, 1500);
34463471
}
34473472
}
34483473

@@ -4250,6 +4275,7 @@ function RemoteFunctions(config = {}) {
42504275
"hasVisibleLivePreviewBoxes" : hasVisibleLivePreviewBoxes,
42514276
"dismissUIAndCleanupState" : dismissUIAndCleanupState,
42524277
"dismissImageRibbonGallery" : dismissImageRibbonGallery,
4278+
"enableHoverListeners" : enableHoverListeners,
42534279
"registerHandlers" : registerHandlers
42544280
};
42554281
}

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)