Fiks BlockShell-knapper: stopPropagation forhindrer drag-capture
Minimer, maksimer og lukk-knapper ble fanget av header-dragging
pga setPointerCapture. Nå: stopPropagation på controls-div og
individuelle knapper, pluss .closest('.blockshell-controls') sjekk.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
25a543e957
commit
df8b3b2f2e
1 changed files with 7 additions and 5 deletions
|
|
@ -142,9 +142,10 @@
|
||||||
|
|
||||||
// --- Drag (repositioning via header) ---
|
// --- Drag (repositioning via header) ---
|
||||||
function handleDragStart(e: PointerEvent) {
|
function handleDragStart(e: PointerEvent) {
|
||||||
// Only left button, not on buttons
|
// Only left button, not on buttons or controls
|
||||||
if (e.button !== 0) return;
|
if (e.button !== 0) return;
|
||||||
if ((e.target as HTMLElement).closest('button')) return;
|
if ((e.target as HTMLElement).closest('button')) return;
|
||||||
|
if ((e.target as HTMLElement).closest('.blockshell-controls')) return;
|
||||||
|
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
hasDragged = false;
|
hasDragged = false;
|
||||||
|
|
@ -351,11 +352,12 @@
|
||||||
<span class="blockshell-title">{title}</span>
|
<span class="blockshell-title">{title}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="blockshell-controls">
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
||||||
|
<div class="blockshell-controls" onpointerdown={(e) => e.stopPropagation()}>
|
||||||
{#if !isFullscreen}
|
{#if !isFullscreen}
|
||||||
<button
|
<button
|
||||||
class="blockshell-btn"
|
class="blockshell-btn"
|
||||||
onclick={() => onMinimizeChange?.(!minimized)}
|
onclick={(e) => { e.stopPropagation(); onMinimizeChange?.(!minimized); }}
|
||||||
title={minimized ? 'Gjenopprett' : 'Minimer'}
|
title={minimized ? 'Gjenopprett' : 'Minimer'}
|
||||||
aria-label={minimized ? 'Gjenopprett panel' : 'Minimer panel'}
|
aria-label={minimized ? 'Gjenopprett panel' : 'Minimer panel'}
|
||||||
>
|
>
|
||||||
|
|
@ -364,7 +366,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
<button
|
<button
|
||||||
class="blockshell-btn"
|
class="blockshell-btn"
|
||||||
onclick={toggleFullscreen}
|
onclick={(e) => { e.stopPropagation(); toggleFullscreen(); }}
|
||||||
title={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'}
|
title={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'}
|
||||||
aria-label={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'}
|
aria-label={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'}
|
||||||
>
|
>
|
||||||
|
|
@ -373,7 +375,7 @@
|
||||||
{#if closable}
|
{#if closable}
|
||||||
<button
|
<button
|
||||||
class="blockshell-btn blockshell-btn-close"
|
class="blockshell-btn blockshell-btn-close"
|
||||||
onclick={() => onClose?.()}
|
onclick={(e) => { e.stopPropagation(); onClose?.(); }}
|
||||||
title="Lukk"
|
title="Lukk"
|
||||||
aria-label="Lukk panel"
|
aria-label="Lukk panel"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue