diff options
-rw-r--r-- | runtime/doc/eval.txt | 5 | ||||
-rw-r--r-- | src/eval.c | 1 | ||||
-rw-r--r-- | src/gui.c | 10 | ||||
-rw-r--r-- | src/os_unix.c | 5 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 3 |
6 files changed, 25 insertions, 1 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index f8ac2727d..d37fe2ab3 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1657,6 +1657,11 @@ v:version Version number of Vim: Major version number times 100 plus *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* diff --git a/src/eval.c b/src/eval.c index 699598be0..1216dc672 100644 --- 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 */ @@ -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__) diff --git a/src/os_unix.c b/src/os_unix.c index 150bdad6d..9fcebd6a3 100644 --- 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); } diff --git a/src/version.c b/src/version.c index e776e1d52..e5164d362 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 31, +/**/ 30, /**/ 29, @@ -1842,7 +1842,8 @@ typedef int proftime_T; /* dummy for function prototypes */ #define VV_OP 52 #define VV_SEARCHFORWARD 53 #define VV_OLDFILES 54 -#define VV_LEN 55 /* number of v: vars */ +#define VV_WINDOWID 55 +#define VV_LEN 56 /* number of v: vars */ #ifdef FEAT_CLIPBOARD |