From 0aaa3efbb0cfd4ee63cd3cb7cd6d33c2eb635b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Mon, 2 Feb 2026 18:25:02 +0100 Subject: [PATCH] Fix: Copy register handling for cagire-desktop (Linux) --- CHANGELOG.md | 1 + src/input_egui.rs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b611c3e..2ff02b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file. ### Fixed - Scope/spectrum ratio asymmetry in Left/Right layout modes. - Updated `cpal` dependency from 0.15 to 0.17 to fix type mismatch with `doux` audio backend. +- Copy/paste (Ctrl+C/V/X) not working in desktop version due to egui intercepting clipboard shortcuts. ## [0.0.3] - 2026-02-02 diff --git a/src/input_egui.rs b/src/input_egui.rs index 80ea8b1..f06e878 100644 --- a/src/input_egui.rs +++ b/src/input_egui.rs @@ -40,6 +40,12 @@ fn convert_event(event: &egui::Event) -> Option { } None } + // egui intercepts Ctrl+C/V/X and converts them to these high-level events + // instead of passing through raw Key events (see egui issue #4065). + // Synthesize the equivalent KeyEvent so the application's input handler receives them. + egui::Event::Copy => Some(KeyEvent::new(KeyCode::Char('c'), KeyModifiers::CONTROL)), + egui::Event::Cut => Some(KeyEvent::new(KeyCode::Char('x'), KeyModifiers::CONTROL)), + egui::Event::Paste(_) => Some(KeyEvent::new(KeyCode::Char('v'), KeyModifiers::CONTROL)), _ => None, } }