mirror of
https://github.com/vim/vim.git
synced 2025-09-07 22:03:36 -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.
|
||||
*/
|
||||
static int x_IOerror_handler __ARGS((Display *dpy));
|
||||
static void may_restore_clipboard __ARGS((void));
|
||||
static int xterm_dpy_was_reset = FALSE;
|
||||
|
||||
static int
|
||||
x_IOerror_handler(dpy)
|
||||
Display *dpy UNUSED;
|
||||
{
|
||||
xterm_dpy = NULL;
|
||||
xterm_dpy_was_reset = TRUE;
|
||||
x11_window = 0;
|
||||
x11_display = NULL;
|
||||
xterm_Shell = (Widget)0;
|
||||
@ -1602,6 +1605,22 @@ x_IOerror_handler(dpy)
|
||||
return 0; /* avoid the compiler complains about missing return value */
|
||||
# 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
|
||||
|
||||
/*
|
||||
@ -5274,6 +5293,7 @@ RealWaitForChar(fd, msec, check_for_gpm)
|
||||
}
|
||||
# endif
|
||||
# ifdef FEAT_XCLIPBOARD
|
||||
may_restore_clipboard();
|
||||
if (xterm_Shell != (Widget)0)
|
||||
{
|
||||
xterm_idx = nfd;
|
||||
@ -5426,6 +5446,7 @@ select_eintr:
|
||||
}
|
||||
# endif
|
||||
# ifdef FEAT_XCLIPBOARD
|
||||
may_restore_clipboard();
|
||||
if (xterm_Shell != (Widget)0)
|
||||
{
|
||||
FD_SET(ConnectionNumber(xterm_dpy), &rfds);
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
523,
|
||||
/**/
|
||||
522,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user