diff --git a/src/App.vue b/src/App.vue index 890f9ff..1ed8894 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,7 +4,7 @@ import EditorPanel from './components/editor/EditorPanel.vue'; import ElementPopup from './components/ElementPopup.vue'; import PagePopup from './components/PagePopup.vue'; import PreviewLoader from './components/PreviewLoader.vue'; -import { onMounted, ref, watch, computed, provide } from 'vue'; +import { onMounted, onUnmounted, ref, watch, computed, provide } from 'vue'; import { useStylesheetStore } from './stores/stylesheet'; import Coloris from '@melloware/coloris'; @@ -274,7 +274,25 @@ watch( } ); -onMounted(() => renderPreview(true)); +// Handle Cmd+P / Ctrl+P to print the iframe content +const handlePrint = (event) => { + if ((event.metaKey || event.ctrlKey) && event.key === 'p') { + event.preventDefault(); + const frame = activeFrame.value; + if (frame && frame.contentWindow) { + frame.contentWindow.print(); + } + } +}; + +onMounted(() => { + renderPreview(true); + window.addEventListener('keydown', handlePrint); +}); + +onUnmounted(() => { + window.removeEventListener('keydown', handlePrint); +});