From c8389f34b2ce72b884213e5e2f545794548148b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Jakob=20Schj=C3=B8th?= Date: Thu, 27 Nov 2025 11:38:41 +0100 Subject: [PATCH] feat: Add disabled option for pasting. (#364) * feat: Add disabled option for pasting. * update bindings * -> none --------- Co-authored-by: CJ Pais --- src-tauri/src/clipboard.rs | 4 ++++ src-tauri/src/settings.rs | 1 + src-tauri/src/shortcut.rs | 1 + src/bindings.ts | 2 +- src/components/settings/PasteMethod.tsx | 3 ++- 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/clipboard.rs b/src-tauri/src/clipboard.rs index 8b26c7e..cc52119 100644 --- a/src-tauri/src/clipboard.rs +++ b/src-tauri/src/clipboard.rs @@ -141,6 +141,10 @@ pub fn paste(text: String, app_handle: AppHandle) -> Result<(), String> { // Perform the paste operation match paste_method { + PasteMethod::None => { + // Intentionally do not perform any paste action; history/clipboard update + info!("PasteMethod::None selected - skipping paste action"); + } PasteMethod::CtrlV => paste_via_clipboard_ctrl_v(&text, &app_handle)?, PasteMethod::Direct => paste_via_direct_input(&text)?, PasteMethod::ShiftInsert => paste_via_clipboard_shift_insert(&text, &app_handle)?, diff --git a/src-tauri/src/settings.rs b/src-tauri/src/settings.rs index 8054d38..d5db704 100644 --- a/src-tauri/src/settings.rs +++ b/src-tauri/src/settings.rs @@ -126,6 +126,7 @@ pub enum ModelUnloadTimeout { pub enum PasteMethod { CtrlV, Direct, + None, ShiftInsert, } diff --git a/src-tauri/src/shortcut.rs b/src-tauri/src/shortcut.rs index fb03031..e070e44 100644 --- a/src-tauri/src/shortcut.rs +++ b/src-tauri/src/shortcut.rs @@ -285,6 +285,7 @@ pub fn change_paste_method_setting(app: AppHandle, method: String) -> Result<(), let parsed = match method.as_str() { "ctrl_v" => PasteMethod::CtrlV, "direct" => PasteMethod::Direct, + "none" => PasteMethod::None, "shift_insert" => PasteMethod::ShiftInsert, other => { warn!("Invalid paste method '{}', defaulting to ctrl_v", other); diff --git a/src/bindings.ts b/src/bindings.ts index 1259c24..ffd2ef5 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -607,7 +607,7 @@ export type ModelInfo = { id: string; name: string; description: string; filenam export type ModelLoadStatus = { is_loaded: boolean; current_model: string | null } export type ModelUnloadTimeout = "never" | "immediately" | "min_2" | "min_5" | "min_10" | "min_15" | "hour_1" | "sec_5" export type OverlayPosition = "none" | "top" | "bottom" -export type PasteMethod = "ctrl_v" | "direct" | "shift_insert" +export type PasteMethod = "ctrl_v" | "direct" | "none" | "shift_insert" export type PostProcessProvider = { id: string; label: string; base_url: string; allow_base_url_edit?: boolean; models_endpoint?: string | null } export type RecordingRetentionPeriod = "never" | "preserve_limit" | "days_3" | "weeks_2" | "months_3" export type ShortcutBinding = { id: string; name: string; description: string; default_binding: string; current_binding: string } diff --git a/src/components/settings/PasteMethod.tsx b/src/components/settings/PasteMethod.tsx index 89807fd..10297ac 100644 --- a/src/components/settings/PasteMethod.tsx +++ b/src/components/settings/PasteMethod.tsx @@ -14,6 +14,7 @@ const getPasteMethodOptions = (osType: string) => { const baseOptions = [ { value: "ctrl_v", label: "Clipboard (Ctrl+V)" }, { value: "direct", label: "Direct" }, + { value: "none", label: "None" }, ]; // Add Shift+Insert option for Windows and Linux only @@ -44,7 +45,7 @@ export const PasteMethodSetting: React.FC = React.memo( return (