From f37db6d38d7eef468aed359d91dda0bab11d1c1c Mon Sep 17 00:00:00 2001 From: Pietro Brenna Date: Tue, 31 Mar 2020 15:29:58 +0200 Subject: [PATCH] Larghezza tab --- src/main.rs | 1 + src/tabs.rs | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index ab44fd6..fab9167 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,6 +37,7 @@ fn build_ui(application: >k::Application) { window.set_keep_above(true); let nb = gtk::Notebook::new(); nb.set_show_tabs(false); + nb.set_scrollable(true); nb.set_show_border(false); let accel_group = gtk::AccelGroup::new(); let (key, modifier) = gtk::accelerator_parse("t"); diff --git a/src/tabs.rs b/src/tabs.rs index f3883f9..b9b7b95 100644 --- a/src/tabs.rs +++ b/src/tabs.rs @@ -9,7 +9,6 @@ pub fn build_tab( shell: Option>, ) -> Result { let l = gtk::Label::new(Some("~")); - l.set_width_chars(14); l.set_ellipsize(pango::EllipsizeMode::Middle); //gtk::Window::set_interactive_debugging(true); let vte = vte::Terminal::new(); @@ -38,8 +37,8 @@ pub fn build_tab( )?; nb.append_page(&vte, Some(&l)); nb.set_tab_reorderable(&vte, true); - vte.connect_child_exited(clone!(@weak nb, @weak vte => move |a, status| { - println!("Child exited with status {:?} {}", a, status); + vte.connect_child_exited(clone!(@weak nb, @weak vte => move |_a, status| { + println!("Child exited with status {}", status); let p_num = nb.page_num(&vte); nb.remove_page(p_num); })); @@ -101,11 +100,13 @@ fn set_title(term: &vte::Terminal, nb: >k::Notebook) { }; if let Some(l) = nb.get_tab_label(term) { if let Ok(l) = l.downcast::() { - if let Some(title) = term.get_window_title() { - l.set_label(&format!("{}{}", tab_n, title)); + let new_label = if let Some(title) = term.get_window_title() { + format!("{}{}", tab_n, title) } else { - l.set_label(&tab_n); - } + tab_n + }; + l.set_label(&new_label); + l.set_width_chars(std::cmp::min(new_label.len(), 14) as i32); } } }