emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* 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).