From 4e9acb65021d4b7982411a3fcb1a4981c24fa60c Mon Sep 17 00:00:00 2001 From: ari melody Date: Mon, 1 Jul 2024 07:58:48 +0100 Subject: [PATCH] only mouse1 clicks should cause posts to open --- src/lib/ui/post/Post.svelte | 12 +++++++++--- src/lib/ui/post/ReplyContext.svelte | 13 ++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/lib/ui/post/Post.svelte b/src/lib/ui/post/Post.svelte index b4e9dbe..15f01aa 100644 --- a/src/lib/ui/post/Post.svelte +++ b/src/lib/ui/post/Post.svelte @@ -32,9 +32,15 @@ let mouse_pos = { top: 0, left: 0 }; - function gotoPost() { + function gotoPost(event) { if (focused) return; - if (event && event.key && event.key !== "Enter") return; + if (event) { + if (event.type == "mouseup" && ( + event.button !== 0 || + event.shiftKey || + event.ctrlKey)) return; + if (event.key && event.key !== "Enter") return; + } goto(`/post/${post.id}`); } @@ -62,7 +68,7 @@ aria-label={aria_label} bind:this={el} on:mousedown={e => {mouse_pos.left = e.pageX; mouse_pos.top = e.pageY}} - on:mouseup={e => {if (e.pageX == mouse_pos.left && e.pageY == mouse_pos.top) gotoPost()}} + on:mouseup={e => {if (e.pageX == mouse_pos.left && e.pageY == mouse_pos.top) gotoPost(e)}} on:keydown={gotoPost}> diff --git a/src/lib/ui/post/ReplyContext.svelte b/src/lib/ui/post/ReplyContext.svelte index ee67857..20d7ab4 100644 --- a/src/lib/ui/post/ReplyContext.svelte +++ b/src/lib/ui/post/ReplyContext.svelte @@ -16,8 +16,15 @@ let mouse_pos = { top: 0, left: 0 }; - function gotoPost() { - if (event && event.key && event.key !== "Enter") return; + function gotoPost(event) { + if (event) { + + if (event.type == "mouseup" && ( + event.button !== 0 || + event.shiftKey || + event.ctrlKey)) return; + if (event.key && event.key !== "Enter") return; + } goto(`/post/${post.id}`); } @@ -32,7 +39,7 @@ class="post-reply" aria-label={aria_label} on:mousedown={e => {mouse_pos.left = e.pageX; mouse_pos.top = e.pageY}} - on:mouseup={e => {if (e.pageX == mouse_pos.left && e.pageY == mouse_pos.top) gotoPost()}} + on:mouseup={e => {if (e.pageX == mouse_pos.left && e.pageY == mouse_pos.top) gotoPost(e)}} on:keydown={gotoPost}>