Browse Source

Turn off flyspell-mode for the duration of column view.

Bernt Hansen had reported an infinite loop due to the interaction between
flyspell and Org  column view.
Carsten Dominik 17 years ago
parent
commit
ba91e25cae
2 changed files with 27 additions and 4 deletions
  1. 14 2
      ChangeLog
  2. 13 2
      lisp/org-colview.el

+ 14 - 2
ChangeLog

@@ -1,14 +1,26 @@
+2008-04-24  Carsten Dominik  <dominik@science.uva.nl>
+
+	* lisp/org-colview.el (org-columns, org-agenda-columns): Remember
+	is `flyspell-mode' was active when entering column display, and
+	turn it off if it is on.
+	(org-columns-remove-overlays): Turn `flyspell-mode' back on if it
+	was on before column view was entered.
+
+	* lisp/org-infojs.el (org-infojs-options-inbuffer-template)
+	(org-infojs-opts-table): Removed the `runs' parameter, it is no
+	longer needed.
+
 2008-04-23  Carsten Dominik  <dominik@science.uva.nl>
 2008-04-23  Carsten Dominik  <dominik@science.uva.nl>
 
 
 	* lisp/org.el (org-op-to-function, org<>, org-string<=)
 	* lisp/org.el (org-op-to-function, org<>, org-string<=)
 	(org-string>=, org-string<>): New functions.
 	(org-string>=, org-string<>): New functions.
 	(org-property-re): Make sure the value contains a non-white
 	(org-property-re): Make sure the value contains a non-white
-	character. 
+	character.
 
 
 2008-04-21  Carsten Dominik  <dominik@science.uva.nl>
 2008-04-21  Carsten Dominik  <dominik@science.uva.nl>
 
 
 	* lisp/org-remember.el (org-get-x-clipboard): Protect the call to
 	* lisp/org-remember.el (org-get-x-clipboard): Protect the call to
-	`x-selection-value'. 
+	`x-selection-value'.
 
 
 2008-04-16  Jason Riedy  <jason@acm.org>
 2008-04-16  Jason Riedy  <jason@acm.org>
 
 

+ 13 - 2
lisp/org-colview.el

@@ -206,7 +206,10 @@ This is the compiled version of the format.")
   "The header line format before column view was turned on.")
   "The header line format before column view was turned on.")
 (defvar org-columns-inhibit-recalculation nil
 (defvar org-columns-inhibit-recalculation nil
   "Inhibit recomputing of columns on column view startup.")
   "Inhibit recomputing of columns on column view startup.")
-
+(defvar org-columns-flyspell-was-active nil
+  "Remember the state of `flyspell-mode' before column view.
+Flyspell-mode can cause problems in columns view, so it is turned off
+for the duration of the command."
 
 
 (defvar header-line-format)
 (defvar header-line-format)
 (defvar org-columns-previous-hscroll 0)
 (defvar org-columns-previous-hscroll 0)
@@ -263,7 +266,9 @@ This is the compiled version of the format.")
        (mapc 'org-delete-overlay org-columns-overlays)
        (mapc 'org-delete-overlay org-columns-overlays)
        (setq org-columns-overlays nil)
        (setq org-columns-overlays nil)
        (let ((inhibit-read-only t))
        (let ((inhibit-read-only t))
-	 (remove-text-properties (point-min) (point-max) '(read-only t)))))))
+	 (remove-text-properties (point-min) (point-max) '(read-only t))))
+      (when org-columns-flyspell-was-active
+	(flyspell-mode 1)))))
 
 
 (defun org-columns-cleanup-item (item fmt)
 (defun org-columns-cleanup-item (item fmt)
   "Remove from ITEM what is a column in the format FMT."
   "Remove from ITEM what is a column in the format FMT."
@@ -570,6 +575,9 @@ Where possible, use the standard interface for changing this line."
 	(setq maxwidths (org-columns-get-autowidth-alist fmt cache))
 	(setq maxwidths (org-columns-get-autowidth-alist fmt cache))
 	(org-set-local 'org-columns-current-maxwidths maxwidths)
 	(org-set-local 'org-columns-current-maxwidths maxwidths)
 	(org-columns-display-here-title)
 	(org-columns-display-here-title)
+	(when (org-set-local 'org-columns-flyspell-was-active
+			     (org-bound-and-true-p flyspell-mode))
+	  (flyspell-mode 0))
 	(mapc (lambda (x)
 	(mapc (lambda (x)
 		(goto-line (car x))
 		(goto-line (car x))
 		(org-columns-display-here (cdr x)))
 		(org-columns-display-here (cdr x)))
@@ -1111,6 +1119,9 @@ and tailing newline characters."
 	(setq maxwidths (org-columns-get-autowidth-alist fmt cache))
 	(setq maxwidths (org-columns-get-autowidth-alist fmt cache))
 	(org-set-local 'org-columns-current-maxwidths maxwidths)
 	(org-set-local 'org-columns-current-maxwidths maxwidths)
 	(org-columns-display-here-title)
 	(org-columns-display-here-title)
+	(when (org-set-local 'org-columns-flyspell-was-active
+			     (org-bound-and-true-p flyspell-mode))
+	  (flyspell-mode 0))
 	(mapc (lambda (x)
 	(mapc (lambda (x)
 		(goto-line (car x))
 		(goto-line (car x))
 		(org-columns-display-here (cdr x)))
 		(org-columns-display-here (cdr x)))