Hi,

When column view is active, `C-c C-c' currently quits column view
before the regular Org context dispatch can handle a plain-list
checkbox.  As a result, pressing `C-c C-c' on a normal checkbox line
closes column view instead of toggling the checkbox.

The attached patch changes `org-ctrl-c-ctrl-c' so column view is not
quit when point is on a regular list checkbox.  In that case, the
existing checkbox handling path toggles the checkbox, and column view
remains active.

Best,
-- 
Slawomir Grochowski
>From 046f56bb63b8cc581d4105b2dcd8a4f8e47e7762 Mon Sep 17 00:00:00 2001
From: Slawomir Grochowski <[email protected]>
Date: Sun, 31 May 2026 19:16:46 +0200
Subject: [PATCH] org: Toggle list checkboxes with column view active

* lisp/org.el (org-ctrl-c-ctrl-c): Do not quit column view
  when point is on a regular list checkbox.

* testing/lisp/test-org.el (test-org/org-ctrl-c-ctrl-c): Test
  toggling a regular checkbox with active column view.
---
 lisp/org.el              |  4 +++-
 testing/lisp/test-org.el | 11 ++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index cb36497f4..387c4c421 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18166,7 +18166,9 @@ This command does many different things, depending on context:
   inhibited by setting `org-babel-no-eval-on-ctrl-c-ctrl-c'."
   (interactive "P" org-mode)
   (cond
-   ((bound-and-true-p org-columns-overlays) (org-columns-quit))
+   ((and (bound-and-true-p org-columns-overlays)
+	 (not (org-at-item-checkbox-p)))
+    (org-columns-quit))
    ((or (bound-and-true-p org-clock-overlays) org-occur-highlights)
     (when (boundp 'org-clock-overlays) (org-clock-remove-overlays))
     (org-remove-occur-highlights)
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 4ba7aa560..9c9fbfb00 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -4219,7 +4219,16 @@ text"
     (save-excursion
       (goto-char (point-min))
       (org-ctrl-c-ctrl-c))
-    (should-not org-columns-overlays)))
+    (should-not org-columns-overlays))
+  ;; Toggle regular checkboxes without quitting column view.
+  (org-test-with-temp-text
+      "* Heading
+- [ ] Item<point>"
+    (org-columns)
+    (should org-columns-overlays)
+    (org-ctrl-c-ctrl-c)
+    (should org-columns-overlays)
+    (should (string-match-p (regexp-quote "- [X] Item") (buffer-string)))))
 
 (ert-deftest test-org/update-todo-statistics-cookies ()
   "Test updating TODO statistics cookies."
-- 
2.39.5

Reply via email to