Patch 7.3.031
Problem:    Can't pass the X window ID to another application.
Solution:   Add v:windowid. (Christian J. Robinson, Lech Lorens)
Files:      runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h,
            src/os_unix.c


*** ../vim-7.3.030/runtime/doc/eval.txt 2010-08-15 21:57:15.000000000 +0200
--- runtime/doc/eval.txt        2010-10-20 19:11:03.000000000 +0200
***************
*** 1657,1662 ****
--- 1657,1667 ----
                                        *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*
  
*** ../vim-7.3.030/src/eval.c   2010-10-20 17:44:01.000000000 +0200
--- src/eval.c  2010-10-20 18:48:40.000000000 +0200
***************
*** 362,367 ****
--- 362,368 ----
      {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 */
*** ../vim-7.3.030/src/gui.c    2010-09-29 17:26:57.000000000 +0200
--- src/gui.c   2010-10-20 19:15:56.000000000 +0200
***************
*** 105,112 ****
--- 105,122 ----
  
  #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__)
*** ../vim-7.3.030/src/vim.h    2010-10-10 17:08:28.000000000 +0200
--- src/vim.h   2010-10-20 18:48:40.000000000 +0200
***************
*** 1842,1848 ****
  #define VV_OP         52
  #define VV_SEARCHFORWARD 53
  #define VV_OLDFILES   54
! #define VV_LEN                55      /* number of v: vars */
  
  #ifdef FEAT_CLIPBOARD
  
--- 1842,1849 ----
  #define VV_OP         52
  #define VV_SEARCHFORWARD 53
  #define VV_OLDFILES   54
! #define VV_WINDOWID   55
! #define VV_LEN                56      /* number of v: vars */
  
  #ifdef FEAT_CLIPBOARD
  
*** ../vim-7.3.030/src/os_unix.c        2010-10-13 16:22:05.000000000 +0200
--- src/os_unix.c       2010-10-20 19:15:46.000000000 +0200
***************
*** 1738,1743 ****
--- 1738,1748 ----
      }
      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);
  }
  
*** ../vim-7.3.030/src/version.c        2010-10-20 17:44:01.000000000 +0200
--- src/version.c       2010-10-20 19:11:31.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     31,
  /**/

-- 
What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
meaning 'bloodsucking creatures'.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui