emacs-devel
[Top][All Lists]
Advanced

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

Re: Procedure to get shift_glyphs_for_insert to be called?


From: Eli Zaretskii
Subject: Re: Procedure to get shift_glyphs_for_insert to be called?
Date: Sat, 16 May 2015 12:17:24 +0300

> From: "Jan D." <address@hidden>
> Date: Sat, 16 May 2015 10:25:49 +0200
> 
> There is a RIF method called shift_glyphs_for_insert.
> How do I get it to be called?  I tried many things, but it just seems that 
> the entire line gets redrawn every time.
> 
> I’m trying to get it to do the right thing in the cairo branch, which it 
> currently does not.
> But as it it is seldom (never?) called, I have not noticed any redraw errors 
> yet.

This method was intended to be the equivalent for insert_glyphs on a
TTY.  But the (only) function in dispnew.c which uses insert_glyphs is
never called on GUI frames, so the only caller of the
shift_glyphs_for_insert method, which is x_insert_glyphs, is never
called, either.

Historically, this method was called by direct_output_for_insert, a
redisplay optimization that handled the case where a single character
was inserted by user typing a self-insert command.  But we deleted
that optimization when we moved to bidirectional display (because in
bidirectional text, inserting a single character can have profound
non-local effects).  So now we never call this method on GUI frames.

IOW, the answer to your question is "you can't, and you shouldn't
bother".  At least not with the current display engine.




reply via email to

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