summaryrefslogtreecommitdiff
path: root/gtk2_ardour/session_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-09-16 19:30:41 +0200
committerRobin Gareus <robin@gareus.org>2015-09-16 19:30:41 +0200
commitf2f7a21aea47e0ae29d279a8efe2a29cd5c17afb (patch)
treee3f01e693979eccb292384be431407987cc3c5ae /gtk2_ardour/session_dialog.cc
parenteda0a24454683f39c5a26f441173008bca9bacf5 (diff)
fix d6029f9 (recent sort-order)
add one, because (-0 == +0)
Diffstat (limited to 'gtk2_ardour/session_dialog.cc')
-rw-r--r--gtk2_ardour/session_dialog.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/gtk2_ardour/session_dialog.cc b/gtk2_ardour/session_dialog.cc
index 2b35f6f226..e47f390eb6 100644
--- a/gtk2_ardour/session_dialog.cc
+++ b/gtk2_ardour/session_dialog.cc
@@ -757,8 +757,12 @@ SessionDialog::redisplay_recent_sessions ()
pColumn->set_sort_column (recent_session_columns.time_modified); // unixtime
}
- const int32_t sort = ARDOUR_UI::config()->get_recent_session_sort();
- recent_session_model->set_sort_column (abs (sort), sort < 0 ? Gtk::SORT_DESCENDING : Gtk::SORT_ASCENDING);
+ int32_t sort = ARDOUR_UI::config()->get_recent_session_sort();
+ if (abs(sort) != 1 + recent_session_columns.visible_name.index () &&
+ abs(sort) != 1 + recent_session_columns.time_modified.index ()) {
+ sort = 1 + recent_session_columns.visible_name.index();
+ }
+ recent_session_model->set_sort_column (abs (sort) -1, sort < 0 ? Gtk::SORT_DESCENDING : Gtk::SORT_ASCENDING);
return session_snapshot_count;
}
@@ -769,7 +773,7 @@ SessionDialog::recent_session_sort_changed ()
int column;
SortType order;
if (recent_session_model->get_sort_column_id (column, order)) {
- int32_t sort = column * (order == Gtk::SORT_DESCENDING ? -1 : 1);
+ int32_t sort = (column + 1) * (order == Gtk::SORT_DESCENDING ? -1 : 1);
if (sort != ARDOUR_UI::config()->get_recent_session_sort()) {
ARDOUR_UI::config()->set_recent_session_sort(sort);
}