From 3dd769d955764455ade6ddee746a37657bff8f4a Mon Sep 17 00:00:00 2001 From: Phillip Susi Date: Sun, 20 Jan 2013 22:54:02 -0500 Subject: [PATCH] Select unallocated partition by default (#667365) After a refresh, instead of having no partition selected, default to the largest unallocated partition. This allows immediate creation of a new partition in the unallocated space. Closes Bug 667365 - Free space should be selected by default --- src/Win_GParted.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Win_GParted.cc b/src/Win_GParted.cc index e8045034..3da063a4 100644 --- a/src/Win_GParted.cc +++ b/src/Win_GParted.cc @@ -820,6 +820,7 @@ bool Win_GParted::Merge_Operations( unsigned int first, unsigned int second ) void Win_GParted::Refresh_Visual() { std::vector partitions = devices[ current_device ] .partitions ; + int largest_unallocated = -1; //make all operations visible for ( unsigned int t = 0 ; t < operations .size(); t++ ) @@ -859,7 +860,12 @@ void Win_GParted::Refresh_Visual() index_extended = t ; primary_count++; break; - + case GParted::TYPE_UNALLOCATED : + if (largest_unallocated == -1) + largest_unallocated = t; + else if( (partitions[t].sector_end - partitions[t].sector_start) > + (partitions[largest_unallocated].sector_end - partitions[largest_unallocated].sector_start)) + largest_unallocated = t; default : break; } @@ -873,6 +879,12 @@ void Win_GParted::Refresh_Visual() //no partition can be selected after a refresh.. selected_partition .Reset() ; + if( largest_unallocated != -1 ) + { + selected_partition = partitions[largest_unallocated]; + treeview_detail.set_selected( selected_partition ); + drawingarea_visualdisk.set_selected( selected_partition ); + } set_valid_operations() ; while ( Gtk::Main::events_pending() )