Skip to content

Commit df296ad

Browse files
committed
fix: pressing delete in image gallery text field deleted live preview element
1 parent 8d1d5ee commit df296ad

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/LiveDevelopment/BrowserScripts/LiveDevProtocolRemote.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -459,18 +459,25 @@
459459
// Check if element is designed to receive text input
460460
(activeElement.hasAttribute("contenteditable") && activeElement.hasAttribute("data-brackets-id"))
461461
);
462+
463+
// Check if a Phoenix tool is active (has data-phcode-internal-* attribute)
464+
const isActiveElementPhoenixTool = activeElement && Array.from(activeElement.attributes || []).some(attr =>
465+
attr.name.startsWith('data-phcode-internal-') && attr.value === 'true'
466+
);
467+
462468
const isInEditMode = window._LD && window._LD.getMode && window._LD.getMode() === 'edit';
463469

464470
// for undo. refer to LivePreviewEdit.js file 'handleLivePreviewEditOperation' function
465-
if (!isEditingText && isInEditMode && (e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "z" && !e.shiftKey) {
471+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode &&
472+
(e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "z" && !e.shiftKey) {
466473
MessageBroker.send({
467474
livePreviewEditEnabled: true,
468475
undoLivePreviewOperation: true
469476
});
470477
}
471478

472479
// for redo - supports both Ctrl+Y and Ctrl+Shift+Z (Cmd+Y and Cmd+Shift+Z on Mac)
473-
if (!isEditingText && isInEditMode && (e.ctrlKey || e.metaKey) &&
480+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode && (e.ctrlKey || e.metaKey) &&
474481
(e.key.toLowerCase() === "y" || (e.key.toLowerCase() === "z" && e.shiftKey))) {
475482
MessageBroker.send({
476483
livePreviewEditEnabled: true,
@@ -482,7 +489,7 @@
482489
if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "x") {
483490

484491
// Only handle element cut if not editing text and in edit mode
485-
if (!isEditingText && isInEditMode && window._LD.handleCutElement) {
492+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode && window._LD.handleCutElement) {
486493
e.preventDefault();
487494
window._LD.handleCutElement();
488495
}
@@ -492,7 +499,7 @@
492499
if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "c") {
493500

494501
// Only handle element copy if not editing text and in edit mode
495-
if (!isEditingText && isInEditMode && window._LD.handleCopyElement) {
502+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode && window._LD.handleCopyElement) {
496503
e.preventDefault();
497504
window._LD.handleCopyElement();
498505
}
@@ -502,14 +509,14 @@
502509
if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "v") {
503510

504511
// Only handle element paste if not editing text and in edit mode
505-
if (!isEditingText && isInEditMode && window._LD.handlePasteElement) {
512+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode && window._LD.handlePasteElement) {
506513
e.preventDefault();
507514
window._LD.handlePasteElement();
508515
}
509516
}
510517

511518
if (e.key.toLowerCase() === 'delete' || e.key.toLowerCase() === 'backspace') {
512-
if (!isEditingText && isInEditMode && window._LD.handleDeleteElement) {
519+
if (!isEditingText && !isActiveElementPhoenixTool && isInEditMode && window._LD.handleDeleteElement) {
513520
e.preventDefault();
514521
window._LD.handleDeleteElement();
515522
}

0 commit comments

Comments
 (0)