diff --git a/src/main.rs b/src/main.rs index 930e34e..13df045 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,6 +14,7 @@ mod menu; mod stato_finestra; mod tabs; mod wake_listener; +use crate::vte::TerminalExt; use stato_finestra::{OperazStato, PosizFinestra, StatoFinestra, StatoFull}; fn build_ui(application: >k::Application) { @@ -68,6 +69,22 @@ fn build_ui(application: >k::Application) { true }), ); + let (key, modifier) = gtk::accelerator_parse("c"); + accel_group.connect_accel_group( + key, + modifier, + gtk::AccelFlags::VISIBLE, + clone!(@weak nb => @default-return true, move |_accel_g, _window, _key, _modif| { + let p_num = nb.get_current_page(); + let page = nb.get_nth_page(p_num); + if let Some(vte) = page { + let _ = vte.downcast::().map(|x| if x.get_has_selection() { + x.emit_copy_clipboard() + }); + } + true + }), + ); let (key, modifier) = gtk::accelerator_parse("F11"); let stato = StatoFinestra::new_arc(PosizFinestra::Su, StatoFull::NonFull); let stato0 = stato.clone(); diff --git a/src/tabs.rs b/src/tabs.rs index f4efb9a..d40547c 100644 --- a/src/tabs.rs +++ b/src/tabs.rs @@ -16,14 +16,14 @@ pub fn build_tab( //gtk::Window::set_interactive_debugging(true); let vte = vte::Terminal::new(); vte.set_scrollback_lines(-1); - let (key, modifier) = gtk::accelerator_parse("c"); - vte.add_accelerator( - "copy-clipboard", - &new_accel_g, - key, - modifier, - gtk::AccelFlags::VISIBLE, - ); + // let (key, modifier) = gtk::accelerator_parse("c"); + // vte.add_accelerator( + // "copy-clipboard", + // &new_accel_g, + // key, + // modifier, + // gtk::AccelFlags::VISIBLE, + // ); let font = pango::FontDescription::from_string("Iosevka Regular 13"); vte.set_font(Some(&font));