Mercurial > vim
changeset 4383:e2db42528a5b v7.3.940
updated for version 7.3.940
Problem: Python: Can't get position of window.
Solution: Add window.row and window.col. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 12 May 2013 19:30:31 +0200 |
parents | 977fbe80d49f |
children | 1e7c1e5ad3bd |
files | runtime/doc/if_pyth.txt src/if_py_both.h src/version.c |
diffstat | 3 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/if_pyth.txt +++ b/runtime/doc/if_pyth.txt @@ -400,6 +400,9 @@ Window attributes are: This is zero in case it cannot be determined (e.g. when the window object belongs to other tab page). + row, col (read-only) On-screen window position in display cells. + First position is zero. + The height attribute is writable only if the screen is split horizontally. The width attribute is writable only if the screen is split vertically.
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -1839,9 +1839,15 @@ WindowAttr(WindowObject *this, char *nam } else if (strcmp(name, "height") == 0) return PyLong_FromLong((long)(this->win->w_height)); +#ifdef FEAT_WINDOWS + else if (strcmp(name, "row") == 0) + return PyLong_FromLong((long)(this->win->w_winrow)); +#endif #ifdef FEAT_VERTSPLIT else if (strcmp(name, "width") == 0) return PyLong_FromLong((long)(W_WIDTH(this->win))); + else if (strcmp(name, "col") == 0) + return PyLong_FromLong((long)(W_WINCOL(this->win))); #endif else if (strcmp(name, "vars") == 0) return DictionaryNew(this->win->w_vars); @@ -1851,8 +1857,8 @@ WindowAttr(WindowObject *this, char *nam else if (strcmp(name, "number") == 0) return PyLong_FromLong((long) get_win_number(this->win)); else if (strcmp(name,"__members__") == 0) - return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", - "options", "number"); + return Py_BuildValue("[ssssssss]", "buffer", "cursor", "height", "vars", + "options", "number", "row", "col"); else return NULL; }