summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2011-12-31 18:13:23 +0100
committerBastien Guerry <bzg@altern.org>2011-12-31 18:13:23 +0100
commit4752725b6441b678689d818315fe8494cf3eae5f (patch)
treed3b056c711e15383282715d6a6df6a297d01fbc1
parent4fc96782dde4ab4701aa2fdd4f24c49eec3081cd (diff)
downloadorg-mode-4752725b6441b678689d818315fe8494cf3eae5f.tar.gz
Revert "Fix problem with `org-ctrl-c-ctrl-c' on the checkbox of the first item."
This reverts commit 4789bb5a79f004346c37e3a84d12f90ada24d277.
-rw-r--r--lisp/org.el19
1 files changed, 13 insertions, 6 deletions
diff --git a/lisp/org.el b/lisp/org.el
index 8e702ab..c0add60 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18390,12 +18390,19 @@ This command does many different things, depending on context:
block-item)
;; Use a light version of `org-toggle-checkbox' to avoid
;; computing list structure twice.
- (org-list-set-checkbox (point-at-bol) struct
- (cond
- ((equal arg '(16)) "[-]")
- ((equal arg '(4)) nil)
- ((equal "[X]" cbox) "[ ]")
- (t "[X]")))
+ (let ((new-box (cond
+ ((equal arg '(16)) "[-]")
+ ((equal arg '(4)) nil)
+ ((equal "[X]" cbox) "[ ]")
+ (t "[X]"))))
+ (if firstp
+ ;; If at first item of sub-list, remove check-box from
+ ;; every item at the same level.
+ (mapc
+ (lambda (pos) (org-list-set-checkbox pos struct new-box))
+ (org-list-get-all-items
+ (point-at-bol) struct (org-list-prevs-alist struct)))
+ (org-list-set-checkbox (point-at-bol) struct new-box)))
;; Replicate `org-list-write-struct', while grabbing a return
;; value from `org-list-struct-fix-box'.
(org-list-struct-fix-ind struct parents 2)