* Avoiding `intangible'
[not found] <jwv8ue0i12i.fsf-monnier+emacs@gnu.org>
@ 2015-04-16 1:42 ` Stefan Monnier
2015-04-16 9:50 ` Rasmus
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Monnier @ 2015-04-16 1:42 UTC (permalink / raw)
To: emacs-orgmode
I'm on a crusade to eradicate the `intangible' property, which happens
to rub me the wrong way because it's implemented at too-low a level (it
affects every point movement) which incurs a significant performance
penalty (even when not used) and affects a lot of code which then
needs to be fixed by binding inhibit-point-motion-hooks (which I'm
considering defaulting to t).
So I'd like to install the patch below. Any objection? The `invisible'
property already ensures that the command loop moves point away from
those overlays, so the `intangible' property should not be needed there
(tho I don't use Org enough to know how to test it).
Stefan
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 8f7611f..bac8206 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -3847,8 +3847,7 @@ dimming them."
e (point-at-eol)
ov (make-overlay b e))
(if invis1
- (progn (overlay-put ov 'invisible t)
- (overlay-put ov 'intangible t))
+ (overlay-put ov 'invisible t)
(overlay-put ov 'face 'org-agenda-dimmed-todo-face))
(overlay-put ov 'org-type 'org-blocked-todo))))))
(when (org-called-interactively-p 'interactive)
diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el
index e14849f..2587aad 100644
--- a/lisp/org/org-colview.el
+++ b/lisp/org/org-colview.el
@@ -250,7 +250,6 @@ This is the compiled version of the format.")
(setq ov (org-columns-new-overlay beg (point-at-eol)))
(overlay-put ov 'invisible t)
(overlay-put ov 'keymap org-columns-map)
- (overlay-put ov 'intangible t)
(overlay-put ov 'line-prefix "")
(overlay-put ov 'wrap-prefix "")
(push ov org-columns-overlays)
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: Avoiding `intangible'
2015-04-16 1:42 ` Avoiding `intangible' Stefan Monnier
@ 2015-04-16 9:50 ` Rasmus
0 siblings, 0 replies; 2+ messages in thread
From: Rasmus @ 2015-04-16 9:50 UTC (permalink / raw)
To: emacs-orgmode; +Cc: monnier
Hi Stefan,
Thanks for the patch.
Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
> I'm on a crusade to eradicate the `intangible' property, which happens
> to rub me the wrong way because it's implemented at too-low a level (it
> affects every point movement) which incurs a significant performance
> penalty (even when not used) and affects a lot of code which then
> needs to be fixed by binding inhibit-point-motion-hooks (which I'm
> considering defaulting to t).
OK. In addition to the places you've identified, it's also mentioned
here:
./contrib/lisp/org-colview-xemacs.el:396: (overlay-put ov 'intangible t)
./contrib/lisp/org-eval.el:154: (list 'display value 'intangible t 'font-lock-multiline t
./lisp/org.el:11165: (unless (get-text-property (match-end group) 'intangible) ; Emacs 21
> So I'd like to install the patch below. Any objection? The `invisible'
> property already ensures that the command loop moves point away from
> those overlays, so the `intangible' property should not be needed there
> (tho I don't use Org enough to know how to test it).
I can't even make the first modified function do what it is documented to
do. From the special text properties documentation and the documentation
of the changed I don't see a reason why it would not be OK.
I'll install it in master and it will eventually get back to Emacs-core
once 8.3 released assuming no unforeseen breakages are associated with the
change.
Thanks,
Rasmus
--
Not everything that goes around comes back around, you know
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-04-16 9:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <jwv8ue0i12i.fsf-monnier+emacs@gnu.org>
2015-04-16 1:42 ` Avoiding `intangible' Stefan Monnier
2015-04-16 9:50 ` Rasmus
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).