Larghezza tab
parent
c2f83e889f
commit
f37db6d38d
|
|
@ -37,6 +37,7 @@ fn build_ui(application: >k::Application) {
|
||||||
window.set_keep_above(true);
|
window.set_keep_above(true);
|
||||||
let nb = gtk::Notebook::new();
|
let nb = gtk::Notebook::new();
|
||||||
nb.set_show_tabs(false);
|
nb.set_show_tabs(false);
|
||||||
|
nb.set_scrollable(true);
|
||||||
nb.set_show_border(false);
|
nb.set_show_border(false);
|
||||||
let accel_group = gtk::AccelGroup::new();
|
let accel_group = gtk::AccelGroup::new();
|
||||||
let (key, modifier) = gtk::accelerator_parse("<Control><Shift>t");
|
let (key, modifier) = gtk::accelerator_parse("<Control><Shift>t");
|
||||||
|
|
|
||||||
15
src/tabs.rs
15
src/tabs.rs
|
|
@ -9,7 +9,6 @@ pub fn build_tab(
|
||||||
shell: Option<Vec<String>>,
|
shell: Option<Vec<String>>,
|
||||||
) -> Result<vte::Terminal, glib::Error> {
|
) -> Result<vte::Terminal, glib::Error> {
|
||||||
let l = gtk::Label::new(Some("~"));
|
let l = gtk::Label::new(Some("~"));
|
||||||
l.set_width_chars(14);
|
|
||||||
l.set_ellipsize(pango::EllipsizeMode::Middle);
|
l.set_ellipsize(pango::EllipsizeMode::Middle);
|
||||||
//gtk::Window::set_interactive_debugging(true);
|
//gtk::Window::set_interactive_debugging(true);
|
||||||
let vte = vte::Terminal::new();
|
let vte = vte::Terminal::new();
|
||||||
|
|
@ -38,8 +37,8 @@ pub fn build_tab(
|
||||||
)?;
|
)?;
|
||||||
nb.append_page(&vte, Some(&l));
|
nb.append_page(&vte, Some(&l));
|
||||||
nb.set_tab_reorderable(&vte, true);
|
nb.set_tab_reorderable(&vte, true);
|
||||||
vte.connect_child_exited(clone!(@weak nb, @weak vte => move |a, status| {
|
vte.connect_child_exited(clone!(@weak nb, @weak vte => move |_a, status| {
|
||||||
println!("Child exited with status {:?} {}", a, status);
|
println!("Child exited with status {}", status);
|
||||||
let p_num = nb.page_num(&vte);
|
let p_num = nb.page_num(&vte);
|
||||||
nb.remove_page(p_num);
|
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 Some(l) = nb.get_tab_label(term) {
|
||||||
if let Ok(l) = l.downcast::<gtk::Label>() {
|
if let Ok(l) = l.downcast::<gtk::Label>() {
|
||||||
if let Some(title) = term.get_window_title() {
|
let new_label = if let Some(title) = term.get_window_title() {
|
||||||
l.set_label(&format!("{}{}", tab_n, title));
|
format!("{}{}", tab_n, title)
|
||||||
} else {
|
} 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue