Next: Input Events, Previous: Information from the Command Loop, Up: Command Loop [Contents][Index]
When a sequence of text has the display
or composition
property, or is invisible, there can be several buffer positions that
result in the cursor being displayed at same place on the screen.
Therefore, after a command finishes and returns to the command loop,
if point is in such a sequence, the command loop normally moves point
to try and make this sequence effectively intangible.
This point adjustment follows the following general rules: first, the adjustment should not change the overall direction of the command; second if the command moved point, the adjustment tries to ensure the cursor is also moved; third, Emacs prefers the edges of an intangible sequence and among those edges it prefers the non sticky ones, such that newly inserted text is visible.
A command can inhibit this feature by setting the variable
disable-point-adjustment
:
If this variable is non-nil
when a command returns to the
command loop, then the command loop does not check for those text
properties, and does not move point out of sequences that have them.
The command loop sets this variable to nil
before each command,
so if a command sets it, the effect applies only to that command.
If you set this variable to a non-nil
value, the feature of
moving point out of these sequences is completely turned off.