Subject: Re: bug#21368: 25.0.50; Core navigation commands fail in a multi-line intangible text with fringe

From: Wolfgang Jenkner <[email-masked]>
Date: Mon, 31 Aug 2015 14:54:27 +0200

On Sun, Aug 30 2015, Wolfgang Jenkner wrote:

> On Sun, Aug 30 2015, Eli Zaretskii wrote:
>
> [I wrote]
>>> That's perhaps
>>> 
>>>   commit 84e0b7dad6f1a8e53261f9b96f5a9080fea681a4
>>>   Author: Stefan Monnier <[email-masked]>
>>>   Date:   Mon Apr 13 15:51:15 2015 -0400
>>> 
>>>   Deprecate `intangible' and `point-entered' properties
>>
>> I don't think so, because I have a build from May 1, and the problem
>> with backward-char is not there.
>
> Ah, sorry then.  In any case, using the stuff introduced by this change
> works for the OP's example.

I properly bisected commits for the month of May and it gives

  commit d090be146176e9acee89fdaadc86e2eb26209ef5
  Author: Stefan Monnier <[email-masked]>
  Date:   Wed May 27 11:52:28 2015 -0400

  Change inhibit-point-motion-hooks to t

  * src/textprop.c (syms_of_textprop): Default Vinhibit_point_motion_hooks
  to t and document it as obsolete.

Indeed, with the following definition (where both the `intangible' text
property and the use of `inhibit-point-motion-hooks' are deprecated now)
point is placed on the "f" of "fringe" (not on the "d" of "dummy"), and
so M-: (backward-char) works.

(defun insert-with-fringe ()
  (interactive)
  (let (inhibit-point-motion-hooks)
    (insert
     "      "
     (concat
      (propertize "fringe" 'display (list 'left-fringe 'filled-square font-lock-doc-face)
		  'intangible 'test)
      (propertize "dummy\n" 'display "AAA\n" 'font-lock-face font-lock-doc-face
		  'intangible 'test))
     "some more text")
    (previous-line)))

Of course, this is not really the original subject of this bug report,
I think...