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
