emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Auto de-composition when point is inside a composition


From: Stefan Monnier
Subject: Auto de-composition when point is inside a composition
Date: Mon, 21 Oct 2019 10:15:43 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

I was recently looking at the following code in keyboard.c:

          if (last_point_position > BEGV
              && last_point_position < ZV
              && (composition_adjust_point (last_point_position,
                                            last_point_position)
                  != last_point_position))
            /* The last point was temporarily set within a grapheme
               cluster to prevent automatic composition.  To recover
               the automatic composition, we must update the
               display.  */
            windows_or_buffers_changed = 21;

and wondered:

- why do we need to set windows_or_buffers_changed at all here?
  after all, this code is only run in some circumstances, definitely not
  all the circumstances where we might need to redraw the grapheme
  cluster after point moved out of it, so it seems it's not the right
  place to handle this case (it seems either redundant or insufficient).

- more importantly, does the inhibition of composition when point is in
  the middle of it still work?  I don't use languages which rely on
  composition so I'm not completely sure how this feature is/was
  supposed to work, but I do remember searching for "lam" in Elisp
  buffers in which I had "lambda" prettified to "λ" and having those "λ"
  temporarily be expanded back to "lambda" to show the cursor in the
  middle of it.  Yet, I can't seem to reproduce this de-composition
  behavior any more.  Is it still working?  How can I trigger it?


-- Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]