diff --git a/src/manual_partitioning_page/mod.rs b/src/manual_partitioning_page/mod.rs index 65ed7d7..0383ff2 100644 --- a/src/manual_partitioning_page/mod.rs +++ b/src/manual_partitioning_page/mod.rs @@ -152,7 +152,9 @@ fn create_mount_row( used_partition_array_refcell: &Rc>>, do_used_part_check_refcell: &Rc>, ) -> DriveMountRow { - let partition_scroll_child = gtk::ListBox::builder().build(); + let partition_scroll_child = gtk::ListBox::builder() + .selection_mode(gtk::SelectionMode::None) + .build(); let partitions_scroll = gtk::ScrolledWindow::builder() .hexpand(true) @@ -163,6 +165,8 @@ fn create_mount_row( // Create row let row = DriveMountRow::new_with_scroll(&partitions_scroll); + row.set_deletable(true); + let null_checkbutton = gtk::CheckButton::builder().build(); for partition in partition_array { @@ -206,8 +210,6 @@ fn create_mount_row( #[weak] row, #[weak] - listbox, - #[weak] partition_button, #[strong] partition_changed_action, @@ -262,9 +264,15 @@ fn create_mount_row( closure_local!( #[strong] row, + #[strong] + used_partition_array_refcell, + #[strong] + partition_changed_action, move |row: DriveMountRow| { listbox_clone.remove(&row); + (*used_partition_array_refcell.borrow_mut()).retain(|x| x != &row.partition()); + partition_changed_action.activate(None); } ), );