Mercurial > vim
diff src/ui.c @ 4209:fb533fb6c015 v7.3.856
updated for version 7.3.856
Problem: When calling system() multi-byte clipboard contents is garbled.
Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 13 Mar 2013 17:50:25 +0100 |
parents | 3fd805ca2a6a |
children | 902d6ab377ee |
line wrap: on
line diff
--- a/src/ui.c +++ b/src/ui.c @@ -1456,6 +1456,21 @@ clip_gen_request_selection(cbd) #endif } + int +clip_gen_owner_exists(cbd) + VimClipboard *cbd; +{ +#ifdef FEAT_XCLIPBOARD +# ifdef FEAT_GUI_GTK + if (gui.in_use) + return clip_gtk_owner_exists(cbd); + else +# endif + return clip_x11_owner_exists(cbd); +#endif + return TRUE; +} + #endif /* FEAT_CLIPBOARD */ /***************************************************************************** @@ -2398,7 +2413,8 @@ clip_x11_lose_selection(myShell, cbd) Widget myShell; VimClipboard *cbd; { - XtDisownSelection(myShell, cbd->sel_atom, CurrentTime); + XtDisownSelection(myShell, cbd->sel_atom, + XtLastTimestampProcessed(XtDisplay(myShell))); } int @@ -2440,6 +2456,13 @@ clip_x11_set_selection(cbd) VimClipboard *cbd UNUSED; { } + + int +clip_x11_owner_exists(cbd) + VimClipboard *cbd; +{ + return XGetSelectionOwner(X_DISPLAY, cbd->sel_atom) != None; +} #endif #if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11) \