patch 9.1.1485: missing Wayland clipboard support

Problem:  missing Wayland clipboard support
Solution: make it work (Foxe Chen)

fixes: #5157
closes: #17097

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Foxe Chen
2025-06-27 21:10:35 +02:00
committed by Christian Brabandt
parent 03125277e9
commit b90c2395b2
68 changed files with 7520 additions and 226 deletions

View File

@ -608,7 +608,7 @@ static struct vimoption options[] =
{"clipboard", "cb", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
#ifdef FEAT_CLIPBOARD
(char_u *)&p_cb, PV_NONE, did_set_clipboard, expand_set_clipboard,
# ifdef FEAT_XCLIPBOARD
# if defined(FEAT_XCLIPBOARD) || defined(FEAT_WAYLAND_CLIPBOARD)
{(char_u *)"autoselect,exclude:cons\\|linux",
(char_u *)0L}
# else
@ -617,6 +617,21 @@ static struct vimoption options[] =
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)"", (char_u *)0L}
#endif
SCTX_INIT},
{"clipmethod", "cpm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
#ifdef FEAT_CLIPBOARD
(char_u *)&p_cpm, PV_NONE, did_set_clipmethod, expand_set_clipmethod,
# ifdef UNIX
{(char_u *)"wayland,x11", (char_u *)0L}
# elif defined(VMS)
{(char_u *)"x11", (char_u *)0L}
# else
{(char_u *)"", (char_u *)0L}
# endif
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)NULL, (char_u *)0L}
#endif
SCTX_INIT},
{"cmdheight", "ch", P_NUM|P_VI_DEF|P_RALL,
@ -2960,6 +2975,33 @@ static struct vimoption options[] =
{"winwidth", "wiw", P_NUM|P_VI_DEF,
(char_u *)&p_wiw, PV_NONE, did_set_winwidth, NULL,
{(char_u *)20L, (char_u *)0L} SCTX_INIT},
{"wlseat", "wse", P_STRING|P_VI_DEF,
#ifdef FEAT_WAYLAND
(char_u *)&p_wse, PV_NONE, did_set_wlseat, NULL,
{(char_u *)"", (char_u *)0L}
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)NULL, (char_u *)0L}
#endif
SCTX_INIT},
{"wlsteal", "wst", P_BOOL|P_VI_DEF,
#ifdef FEAT_WAYLAND_CLIPBOARD
(char_u *)&p_wst, PV_NONE, did_set_wlsteal, NULL,
{(char_u *)FALSE, (char_u *)0L}
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)NULL, (char_u *)0L}
#endif
SCTX_INIT},
{"wltimeoutlen", "wtm", P_NUM|P_VI_DEF,
#ifdef FEAT_WAYLAND
(char_u *)&p_wtm, PV_NONE, did_set_wltimeoutlen, NULL,
{(char_u *)500L, (char_u *)0L}
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)NULL, (char_u *)0L}
#endif
SCTX_INIT},
{"wrap", NULL, P_BOOL|P_VI_DEF|P_RWIN,
(char_u *)VAR_WIN, PV_WRAP, did_set_wrap, NULL,
{(char_u *)TRUE, (char_u *)0L} SCTX_INIT},