| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.523 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 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) |
| Files: src/os_unix.c |
| |
| |
| |
| |
| |
| *** 1586,1597 **** |
| --- 1586,1600 ---- |
| * 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,1607 **** |
| --- 1605,1626 ---- |
| 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,5279 **** |
| --- 5293,5299 ---- |
| } |
| # endif |
| # ifdef FEAT_XCLIPBOARD |
| + may_restore_clipboard(); |
| if (xterm_Shell != (Widget)0) |
| { |
| xterm_idx = nfd; |
| |
| *** 5426,5431 **** |
| --- 5446,5452 ---- |
| } |
| # endif |
| # ifdef FEAT_XCLIPBOARD |
| + may_restore_clipboard(); |
| if (xterm_Shell != (Widget)0) |
| { |
| FD_SET(ConnectionNumber(xterm_dpy), &rfds); |
| |
| |
| |
| *** 743,744 **** |
| --- 743,746 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 523, |
| /**/ |
| |
| -- |
| There is no right or wrong, there is only your personal opinion. |
| (Bram Moolenaar) |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |