From 508c4f129fb57a3de4e6348d79311ed2aa0c608f Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Fri, 29 Aug 2025 11:43:03 -0400 Subject: [PATCH] Fix drag-to-create event bugs and improve week view UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Restrict drag-to-create to left-click only (ignore right-clicks) - Prevent drag-to-create when clicking on existing events - Remove unnecessary right-click context menu from week view empty spaces 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/components/week_view.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/components/week_view.rs b/src/components/week_view.rs index 79d4902..954b667 100644 --- a/src/components/week_view.rs +++ b/src/components/week_view.rs @@ -120,6 +120,11 @@ pub fn week_view(props: &WeekViewProps) -> Html { let onmousedown = { let drag_state = drag_state_clone.clone(); Callback::from(move |e: MouseEvent| { + // Only handle left-click (button 0) + if e.button() != 0 { + return; + } + // Calculate Y position relative to day column container // Use layer_y which gives coordinates relative to positioned ancestor let relative_y = e.layer_y() as f64; @@ -197,18 +202,6 @@ pub fn week_view(props: &WeekViewProps) -> Html { html! {
Html { }) }; + let onmousedown_event = { + Callback::from(move |e: MouseEvent| { + e.stop_propagation(); // Prevent drag-to-create from starting on event clicks + }) + }; + let oncontextmenu = { if let Some(callback) = &props.on_event_context_menu { let callback = callback.clone(); @@ -310,6 +309,7 @@ pub fn week_view(props: &WeekViewProps) -> Html { )} {onclick} {oncontextmenu} + onmousedown={onmousedown_event} >
{event.summary.as_ref().unwrap_or(&"Untitled".to_string())}
{if !is_all_day {