Mercurial > vim
changeset 2609:758822790b43 v7.3.031
updated for version 7.3.031
Problem: Can't pass the X window ID to another application.
Solution: Add v:windowid. (Christian J. Robinson, Lech Lorens)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 20 Oct 2010 19:17:48 +0200 |
parents | 7d8af31066c8 |
children | 6c05b5e5c1be |
files | runtime/doc/eval.txt src/eval.c src/gui.c src/os_unix.c src/version.c src/vim.h |
diffstat | 6 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1657,6 +1657,11 @@ v:version Version number of Vim: Major v *v:warningmsg* *warningmsg-variable* v:warningmsg Last given warning message. It's allowed to set this variable. + *v:windowid* *windowid-variable* +v:windowid When any X11 based GUI is running or when running in a + terminal and Vim connects to the X server (|-X|) this will be + set to the window ID. Otherwise the value is zero. + ============================================================================== 4. Builtin Functions *functions*
--- a/src/eval.c +++ b/src/eval.c @@ -362,6 +362,7 @@ static struct vimvar {VV_NAME("operator", VAR_STRING), VV_RO}, {VV_NAME("searchforward", VAR_NUMBER), 0}, {VV_NAME("oldfiles", VAR_LIST), 0}, + {VV_NAME("windowid", VAR_NUMBER), VV_RO}, }; /* shorthand */
--- a/src/gui.c +++ b/src/gui.c @@ -105,8 +105,18 @@ gui_start() #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) if (gui.in_use) + { +# ifdef FEAT_EVAL + Window x11_window; + Display *x11_display; + + if (gui_get_x11_windis(&x11_window, &x11_display) == OK) + set_vim_var_nr(VV_WINDOWID, (long)x11_window); +# endif + /* Display error messages in a dialog now. */ display_errors(); + } #endif #if defined(MAY_FORK) && !defined(__QNXNTO__)
--- a/src/os_unix.c +++ b/src/os_unix.c @@ -1738,6 +1738,11 @@ get_x11_windis() } if (x11_window == 0 || x11_display == NULL) return (result = FAIL); + +# ifdef FEAT_EVAL + set_vim_var_nr(VV_WINDOWID, (long)x11_window); +# endif + return (result = OK); }