aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Manheimer2011-06-26 12:47:39 -0400
committerKen Manheimer2011-06-26 12:47:39 -0400
commit6b5ccddf1c9e78417aacaf375a7e96e64a60f6d3 (patch)
tree5ce80717e70ed6cfe748e6a8e1c65a37873371a9
parent355f2e07082d7fc4d30cd0c1fab444799db6d6a7 (diff)
downloademacs-6b5ccddf1c9e78417aacaf375a7e96e64a60f6d3.tar.gz
emacs-6b5ccddf1c9e78417aacaf375a7e96e64a60f6d3.zip
* allout-widgets.el (allout-widgets-post-command-business): Stop decorating
intermediate isearch matches. They're not being undecorated when an isearch is continued past, and isearch automatically collapses them. This leads to "widget leaks", where decorated items accumulate in collapsed areas. Lines with lots of hidden widgets can slow down cursor travel, substantially. Too much complicated machinery would be needed to ensure undecoration, so we're doing without this nicety. (allout-widgets-tally-string): Don't try to do a hash-table-count of allout-widgets-tally when it's nil. This eliminates spurious "Error during redisplay: (wrong-type-argument hash-table-p nil)" warnings in *Messages* when allout-widgets-maintain-tally is t.
-rw-r--r--lisp/ChangeLog23
-rw-r--r--lisp/allout-widgets.el35
2 files changed, 40 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c726864ebcc..38675a6efb1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,10 +1,26 @@
12011-06-26 Ken Manheimer <ken.manheimer@gmail.com>
2
3 * allout-widgets.el (allout-widgets-post-command-business): Stop
4 decorating intermediate isearch matches. They're not being
5 undecorated when an isearch is continued past, and isearch
6 automatically collapses them. This leads to "widget leaks", where
7 decorated items accumulate in collapsed areas. Lines with lots of
8 hidden widgets can slow down cursor travel, substantially. Too
9 much complicated machinery would be needed to ensure undecoration,
10 so we're doing without this nicety.
11
12 (allout-widgets-tally-string): Don't try to do a hash-table-count
13 of allout-widgets-tally when it's nil. This eliminates spurious "Error
14 during redisplay: (wrong-type-argument hash-table-p nil)" warnings in
15 *Messages* when allout-widgets-maintain-tally is t.
16
12011-06-26 Martin Rudalics <rudalics@gmx.at> 172011-06-26 Martin Rudalics <rudalics@gmx.at>
2 18
3 * window.el (display-buffer-normalize-argument): Rename to 19 * window.el (display-buffer-normalize-argument): Rename to
4 display-buffer-normalize-arguments. Handle special meaning of 20 display-buffer-normalize-arguments. Handle special meaning of
5 LABEL argument. Respect special-display-function when popping 21 LABEL argument. Respect special-display-function when popping up
6 up a new frame. Fix code searching for a window showing the 22 a new frame. Fix code searching for a window showing the buffer
7 buffer on another frame. 23 on another frame.
8 (display-buffer-normalize-specifiers): Call 24 (display-buffer-normalize-specifiers): Call
9 display-buffer-normalize-arguments. 25 display-buffer-normalize-arguments.
10 (display-buffer-in-window): Don't undedicate the window if its 26 (display-buffer-in-window): Don't undedicate the window if its
@@ -981,6 +997,7 @@
981 * iswitchb.el (iswitchb-window-buffer-p): Use `member' instead of 997 * iswitchb.el (iswitchb-window-buffer-p): Use `member' instead of
982 `memq' (Bug#8799). 998 `memq' (Bug#8799).
983 999
1000>>>>>>> MERGE-SOURCE
9842011-06-02 Stefan Monnier <monnier@iro.umontreal.ca> 10012011-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
985 1002
986 * subr.el (make-progress-reporter): Add "..." by default (bug#8785). 1003 * subr.el (make-progress-reporter): Add "..." by default (bug#8785).
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
index 647b609288d..0f1fe850123 100644
--- a/lisp/allout-widgets.el
+++ b/lisp/allout-widgets.el
@@ -258,7 +258,9 @@ widgets are locally inhibited.
258 258
259The number varies according to the evanescence of objects on a 259The number varies according to the evanescence of objects on a
260 hash table with weak keys, so tracking of widget erasures is often delayed." 260 hash table with weak keys, so tracking of widget erasures is often delayed."
261 (when (and allout-widgets-maintain-tally (not allout-widgets-mode-inhibit)) 261 (when (and allout-widgets-maintain-tally
262 (not allout-widgets-mode-inhibit)
263 allout-widgets-tally)
262 (format ":%s" (hash-table-count allout-widgets-tally)))) 264 (format ":%s" (hash-table-count allout-widgets-tally))))
263;;;_ = allout-widgets-track-decoration nil 265;;;_ = allout-widgets-track-decoration nil
264(defcustom allout-widgets-track-decoration nil 266(defcustom allout-widgets-track-decoration nil
@@ -748,20 +750,23 @@ Optional RECURSING is for internal use, to limit recursion."
748 (message replaced-message) 750 (message replaced-message)
749 (message ""))))) 751 (message "")))))
750 752
751 ;; Detect undecorated items, eg during isearch into previously 753 ;; alas, decorated intermediate matches are not easily undecorated
752 ;; unexposed topics, and decorate "economically". Some 754 ;; when they're automatically rehidden by isearch, so we're
753 ;; undecorated stuff is often exposed, to reduce lag, but the 755 ;; dropping this nicety.
754 ;; item containing the cursor is decorated. We constrain 756 ;; ;; Detect undecorated items, eg during isearch into previously
755 ;; recursion to avoid being trapped by unexpectedly undecoratable 757 ;; ;; unexposed topics, and decorate "economically". Some
756 ;; items. 758 ;; ;; undecorated stuff is often exposed, to reduce lag, but the
757 (when (and (not recursing) 759 ;; ;; item containing the cursor is decorated. We constrain
758 (not (allout-current-decorated-p)) 760 ;; ;; recursion to avoid being trapped by unexpectedly undecoratable
759 (or (not (equal (allout-depth) 0)) 761 ;; ;; items.
760 (not allout-container-item-widget))) 762 ;; (when (and (not recursing)
761 (let ((buffer-undo-list t)) 763 ;; (not (allout-current-decorated-p))
762 (allout-widgets-exposure-change-recorder 764 ;; (or (not (equal (allout-depth) 0))
763 allout-recent-prefix-beginning allout-recent-prefix-end nil) 765 ;; (not allout-container-item-widget)))
764 (allout-widgets-post-command-business 'recursing))) 766 ;; (let ((buffer-undo-list t))
767 ;; (allout-widgets-exposure-change-recorder
768 ;; allout-recent-prefix-beginning allout-recent-prefix-end nil)
769 ;; (allout-widgets-post-command-business 'recursing)))
765 770
766 ;; Detect and rectify fouled outline structure - decorated item 771 ;; Detect and rectify fouled outline structure - decorated item
767 ;; not at beginning of line. 772 ;; not at beginning of line.