Re: [vim/vim] Gvim: ligatures are reshaped when cursor moves across constituent characters (Issue #20916)

ubaldot (Vim Github Repository) <[email protected]> Sun, 02 Aug 2026 09:57:13 -0700
Newsgroups gmane.editors.vim.devel
Message-ID <vim/vim/issues/20916/[email protected]>

----==_mimepart_6a6f76e928766_af2551160299678e
Content-Type: text/plain; charset="UTF-8"

ubaldot left a comment (vim/vim#20916)

> Does this patch fix your issue?
> 
> diff --git a/src/gui.c b/src/gui.c
> index 5d6eae105..e2b3b4021 100644
> --- a/src/gui.c
> +++ b/src/gui.c
> @@ -1412,9 +1412,6 @@ gui_update_cursor(
>  	    }
>  	    break;
>  	}
> -    // gui_redraw_block() may invalidate the cursor, make sure to validate
> -    // it again.
> -    gui.cursor_is_valid = true;
>  
>  # ifndef USE_GTK4
>      if ((lig_left || lig_right) && shape->shape != SHAPE_BLOCK)
> @@ -1430,6 +1427,9 @@ gui_update_cursor(
>  	gui.col = old;
>      }
>  # endif
> +    // gui_redraw_block()/gui_screenchar() may invalidate the cursor, make sure
> +    // to validate it again.
> +    gui.cursor_is_valid = true;
>  #endif
>  
>      old_hl_mask = gui.highlight_mask;

Unfortunately, I cannot build on Windows, but it seems that @mao-yining give it a shot. 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/vim/vim/issues/20916#issuecomment-5159389985
You are receiving this because you are subscribed to this thread.

Message ID: <vim/vim/issues/20916/[email protected]>

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/20916/5159389985%40github.com.

----==_mimepart_6a6f76e928766_af2551160299678e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div style=3D"display: flex; flex-wrap: wrap; white-space: pre-wrap; align-=
items: center; "><img height=3D"20" width=3D"20" style=3D"border-radius:50%=
; margin-right: 4px;" decoding=3D"async" src=3D"https://avatars.githubuserc=
ontent.com/u/10845685" /><strong>ubaldot</strong> left a comment <a href=3D=
"https://github.com/vim/vim/issues/20916#issuecomment-5159389985">(vim/vim#=
20916)</a></div>
<blockquote>
<p dir=3D"auto">Does this patch fix your issue?</p>
<p dir=3D"auto">diff --git a/src/gui.c b/src/gui.c<br>
index 5d6eae105..e2b3b4021 100644<br>
--- a/src/gui.c<br>
+++ b/src/gui.c<br>
@@ -1412,9 +1412,6 @@ gui_update_cursor(<br>
}<br>
break;<br>
}</p>
<ul dir=3D"auto">
<li>// gui_redraw_block() may invalidate the cursor, make sure to validate<=
/li>
<li>// it again.</li>
<li>gui.cursor_is_valid =3D true;</li>
</ul>
<h1 dir=3D"auto">ifndef USE_GTK4</h1>
<pre class=3D"notranslate"><code class=3D"notranslate"> if ((lig_left || li=
g_right) &amp;&amp; shape-&gt;shape !=3D SHAPE_BLOCK)
</code></pre>
<p dir=3D"auto">@@ -1430,6 +1427,9 @@ gui_update_cursor(<br>
gui.col =3D old;<br>
}</p>
<h1 dir=3D"auto">endif</h1>
<ul dir=3D"auto">
<li>
<p dir=3D"auto">// gui_redraw_block()/gui_screenchar() may invalidate the c=
ursor, make sure</p>
</li>
<li>
<p dir=3D"auto">// to validate it again.</p>
</li>
<li>
<p dir=3D"auto">gui.cursor_is_valid =3D true;<br>
#endif</p>
<p dir=3D"auto">old_hl_mask =3D gui.highlight_mask;</p>
</li>
</ul>
</blockquote>
<p dir=3D"auto">Unfortunately, I cannot build on Windows, but it seems that=
 <a class=3D"user-mention notranslate" data-hovercard-type=3D"user" data-ho=
vercard-url=3D"/users/mao-yining/hovercard" data-octo-click=3D"hovercard-li=
nk-click" data-octo-dimensions=3D"link_type:self" href=3D"https://github.co=
m/mao-yining">@mao-yining</a> give it a shot.</p>

<p style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;">&mda=
sh;<br />Reply to this email directly, <a href=3D"https://github.com/vim/vi=
m/issues/20916#issuecomment-5159389985">view it on GitHub</a>, or <a href=
=3D"https://github.com/notifications/unsubscribe-auth/ACY5DGAU2EBKGTQRT6ZJS=
2T5H5XGTAVCNFSNUABEKJSXA33TNF2G64TZHM2DAOJZG42DQMR3JFZXG5LFHM2TAMZZGEZDINJS=
GGQXMAQ">unsubscribe</a>.<br />Triage notifications, keep track of coding a=
gent tasks and review pull requests on the go with GitHub Mobile for <a hre=
f=3D"https://github.com/notifications/mobile/ios/ACY5DGBJWSBB5YB6WPB2VI35H5=
XGTA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMJVHEZTQOJZHA22M=
4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSVGM33PORSXEX3JN5ZQ">iOS</a> and <a hre=
f=3D"https://github.com/notifications/mobile/android/ACY5DGDPU6SXG33LVI3P6S=
D5H5XGTA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMJVHEZTQOJZH=
A22M4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSXGM33PORSXEX3BNZSHE33JMQ">Android<=
/a>. Download it today!
<br />You are receiving this because you are subscribed to this thread.<img=
 src=3D"https://github.com/notifications/beacon/ACY5DGB5MN7QLQGJXJFQDND5H5X=
GTBFCNFSM6AAAAAC4WB347OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3=
TUL5UWJTYAAAAACM4GBMQ2M4TFMFZW63VKON2WE43DOJUWEZLE.gif" height=3D"1" width=
=3D"1" alt=3D"" /><span style=3D"color: transparent; font-size: 0; display:=
 none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: =
0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span>&lt;vim/vi=
m/issues/20916/5159389985</span><span>@</span><span>github</span><span>.</s=
pan><span>com&gt;</span></span></p>

<script type=3D"application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/vim/vim/issues/20916#issuecomment-5159389985"=
,
"url": "https://github.com/vim/vim/issues/20916#issuecomment-5159389985",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>

<p></p>

-- <br />
-- <br />
You received this message from the &quot;vim_dev&quot; maillist.<br />
Do not top-post! Type your reply below the text you are replying to.<br />
For more information, visit <a href=3D"http://www.vim.org/maillist.php">htt=
p://www.vim.org/maillist.php</a><br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;vim_dev&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]">vim_dev+uns=
[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
vim_dev/vim/vim/issues/20916/5159389985%40github.com?utm_medium=3Demail&utm=
_source=3Dfooter">https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/=
20916/5159389985%40github.com</a>.<br />

----==_mimepart_6a6f76e928766_af2551160299678e--