From 94e4be534b334a58800d11895dc862908311a94a Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 05 Sep 2008 07:46:17 -0400
Subject: [PATCH] Immediately save sort_col/sort_order in user prefs (#1485265)

---
 CHANGELOG                   |    1 +
 program/steps/mail/list.inc |    7 +++++--
 program/include/rcmail.php  |    7 -------
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 9eba187..8658dc6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,7 @@
 - Also capture backspace key in list mode (#1484566)
 - Allow application/pgp parts to be displayed (#1484753)
 - Correctly handle options in mailto-links (#1485228)
+- Immediately save sort_col/sort_order in user prefs (#1485265)
 
 2008/09/04 (alec)
 ----------
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 243b6f8..c10f835 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -750,13 +750,6 @@
    */
   public function kill_session()
   {
-    $user_prefs = $this->user->get_prefs();
-    
-    if ((isset($_SESSION['sort_col']) && $_SESSION['sort_col'] != $user_prefs['message_sort_col']) ||
-        (isset($_SESSION['sort_order']) && $_SESSION['sort_order'] != $user_prefs['message_sort_order'])) {
-      $this->user->save_prefs(array('message_sort_col' => $_SESSION['sort_col'], 'message_sort_order' => $_SESSION['sort_order']));
-    }
-
     $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true);
     setcookie('sessauth', '-del-', time() - 60);
     $this->user->reset();
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index 2014371..a868f9c 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -26,8 +26,11 @@
   list($sort_col, $sort_order) = explode('_', $sort);
 
   // set session vars for sort (so next page and task switch know how to sort)
-  $_SESSION['sort_col'] = $sort_col;
-  $_SESSION['sort_order'] = $sort_order;
+  $save_arr = array();
+  $_SESSION['sort_col'] = $save_arr['message_sort_col'] = $sort_col;
+  $_SESSION['sort_order'] = $save_arr['message_sort_order'] = $sort_order;
+  
+  $RCMAIL->user->save_prefs($save_arr);
 }
 else
 {

--
Gitblit v1.9.1