[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Procedure to get shift_glyphs_for_insert to be called?
From: |
Jan D. |
Subject: |
Re: Procedure to get shift_glyphs_for_insert to be called? |
Date: |
Sat, 16 May 2015 16:50:40 +0200 |
Hi.
> 16 maj 2015 kl. 11:17 skrev Eli Zaretskii <address@hidden>:
>
>> 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.
Ok, thanks. I will insert some comments to this effect.
Jan D.