mirror of
https://github.com/vim/vim.git
synced 2025-09-10 22:33:40 -04:00
updated for version 7.4.523
Problem: When the X11 server is stopped and restarted, while Vim is kept in the background, copy/paste no longer works. (Issue 203) Solution: Setup the clipboard again. (Christian Brabandt)
This commit is contained in:
parent
4c7b2f50fd
commit
b1e265045c
@ -1586,12 +1586,15 @@ x_IOerror_check(dpy)
|
|||||||
* An X IO Error handler, used to catch terminal errors.
|
* An X IO Error handler, used to catch terminal errors.
|
||||||
*/
|
*/
|
||||||
static int x_IOerror_handler __ARGS((Display *dpy));
|
static int x_IOerror_handler __ARGS((Display *dpy));
|
||||||
|
static void may_restore_clipboard __ARGS((void));
|
||||||
|
static int xterm_dpy_was_reset = FALSE;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
x_IOerror_handler(dpy)
|
x_IOerror_handler(dpy)
|
||||||
Display *dpy UNUSED;
|
Display *dpy UNUSED;
|
||||||
{
|
{
|
||||||
xterm_dpy = NULL;
|
xterm_dpy = NULL;
|
||||||
|
xterm_dpy_was_reset = TRUE;
|
||||||
x11_window = 0;
|
x11_window = 0;
|
||||||
x11_display = NULL;
|
x11_display = NULL;
|
||||||
xterm_Shell = (Widget)0;
|
xterm_Shell = (Widget)0;
|
||||||
@ -1602,6 +1605,22 @@ x_IOerror_handler(dpy)
|
|||||||
return 0; /* avoid the compiler complains about missing return value */
|
return 0; /* avoid the compiler complains about missing return value */
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the X11 connection was lost try to restore it.
|
||||||
|
* Helps when the X11 server was stopped and restarted while Vim was inactive
|
||||||
|
* (e.g. though tmux).
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
may_restore_clipboard()
|
||||||
|
{
|
||||||
|
if (xterm_dpy_was_reset)
|
||||||
|
{
|
||||||
|
xterm_dpy_was_reset = FALSE;
|
||||||
|
setup_term_clip();
|
||||||
|
get_x11_title(FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -5274,6 +5293,7 @@ RealWaitForChar(fd, msec, check_for_gpm)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef FEAT_XCLIPBOARD
|
# ifdef FEAT_XCLIPBOARD
|
||||||
|
may_restore_clipboard();
|
||||||
if (xterm_Shell != (Widget)0)
|
if (xterm_Shell != (Widget)0)
|
||||||
{
|
{
|
||||||
xterm_idx = nfd;
|
xterm_idx = nfd;
|
||||||
@ -5426,6 +5446,7 @@ select_eintr:
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef FEAT_XCLIPBOARD
|
# ifdef FEAT_XCLIPBOARD
|
||||||
|
may_restore_clipboard();
|
||||||
if (xterm_Shell != (Widget)0)
|
if (xterm_Shell != (Widget)0)
|
||||||
{
|
{
|
||||||
FD_SET(ConnectionNumber(xterm_dpy), &rfds);
|
FD_SET(ConnectionNumber(xterm_dpy), &rfds);
|
||||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
523,
|
||||||
/**/
|
/**/
|
||||||
522,
|
522,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user