From 79733f7d6451016a3805793a2ca1677a71103b72 Mon Sep 17 00:00:00 2001
From: Yorhel <git@yorhel.nl>
Date: Tue, 27 Apr 2010 17:58:17 +0200
Subject: [PATCH] Determine which item to select after deletion in browser.c

Rather than the ugly hack in delete.c.
---
 src/browser.c | 3 ++-
 src/delete.c  | 8 ++------
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/browser.c b/src/browser.c
index 9e9ccf6..3d43159 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -379,7 +379,8 @@ int browse_key(int ch) {
         break;
       info_show = 0;
       if((t = dirlist_get(1)) == sel)
-        t = dirlist_get(-1);
+        if((t = dirlist_get(-1)) == sel || t == dirlist_parent)
+          t = sel->parent;
       delete_init(sel, t);
       break;
     }
diff --git a/src/delete.c b/src/delete.c
index cc44d24..b26ef54 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -211,9 +211,6 @@ delete_nxt:
 
 
 void delete_process() {
-  /* determine dir to open after successful delete */
-  struct dir *n = root->parent->sub != root ? root->parent->sub : root->next ? root->next : root->parent;
-
   /* confirm */
   seloption = 1;
   while(state == DS_CONFIRM && !noconfirm)
@@ -237,9 +234,8 @@ void delete_process() {
   if(delete_dir(root))
     browse_init(root);
   else {
-    if(nextsel)
-      nextsel->flags |= FF_BSEL;
-    browse_init(n);
+    nextsel->flags |= FF_BSEL;
+    browse_init(nextsel);
   }
 }
 
-- 
GitLab