ratpoison-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RP] [PATCH 2/3] don't delete the last group


From: Ali Gholami Rudi
Subject: [RP] [PATCH 2/3] don't delete the last group
Date: Sat, 11 Oct 2008 09:39:18 +0330
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Currently gdelete deletes the last group and creates a new empty
group.  This patch changes gdelete to show a message, instead.
---
 src/actions.c |    3 +++
 src/globals.h |    1 +
 src/group.c   |   13 ++++---------
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/actions.c b/src/actions.c
index c7534bc..cacd4b0 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -5024,6 +5024,9 @@ cmd_gdelete (int interactive, struct cmdarg **args)
     case GROUP_DELETE_GROUP_NONEMPTY:
       return cmdret_new (RET_FAILURE, "gdelete: non-empty group");
       break;
+    case GROUP_DELETE_LAST_GROUP:
+      return cmdret_new (RET_FAILURE, "gdelete: cannot delete the last group");
+      break;
     default:
       return cmdret_new (RET_FAILURE, "gdelete: unknown return code (this 
shouldn't happen)");
     }
diff --git a/src/globals.h b/src/globals.h
index b7aaa00..c56bbca 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -64,6 +64,7 @@
 /* Error codes for group_delete_group() */
 #define GROUP_DELETE_GROUP_OK         0
 #define GROUP_DELETE_GROUP_NONEMPTY   1
+#define GROUP_DELETE_LAST_GROUP       2
 
 /* The list of groups. */
 extern struct list_head rp_groups;
diff --git a/src/group.c b/src/group.c
index de8b9a6..00d1476 100644
--- a/src/group.c
+++ b/src/group.c
@@ -543,6 +543,10 @@ group_delete_group (rp_group *g)
   if (list_empty (&(g->mapped_windows))
       && list_empty (&(g->unmapped_windows)))
     {
+      /* don't delete the last group */
+      if (list_size (&rp_groups) == 1)
+        return GROUP_DELETE_LAST_GROUP;
+
       /* we can safely delete the group */
       if (g == rp_current_group)
         {
@@ -552,15 +556,6 @@ group_delete_group (rp_group *g)
 
       list_del (&(g->node));
       group_free (g);
-
-      if (list_empty (&rp_groups))
-        {
-          /* Create the first group in the list (We always need at least
-             one). */
-          g = group_new (numset_request (group_numset), DEFAULT_GROUP_NAME);
-          set_current_group_1 (g);
-          list_add_tail (&g->node, &rp_groups);
-        }
       return GROUP_DELETE_GROUP_OK;
     }
   else
-- 
1.6.0.2.307.gc427.dirty





reply via email to

[Prev in Thread] Current Thread [Next in Thread]