diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-11 11:12:11 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-13 14:11:32 -0300 |
commit | 14f2a3d533c70f45f73c613962fef952e402d97e (patch) | |
tree | 78b96346311e0b6a7466f4a1c4fad51428f00842 /src | |
parent | e026be46af28701c6791d80419e7eb26b7ef858b (diff) | |
download | rneovim-14f2a3d533c70f45f73c613962fef952e402d97e.tar.gz rneovim-14f2a3d533c70f45f73c613962fef952e402d97e.tar.bz2 rneovim-14f2a3d533c70f45f73c613962fef952e402d97e.zip |
API: Implement tabpage_get_window
Diffstat (limited to 'src')
-rw-r--r-- | src/api/tabpage.c | 27 | ||||
-rw-r--r-- | src/api/tabpage.h | 2 |
2 files changed, 26 insertions, 3 deletions
diff --git a/src/api/tabpage.c b/src/api/tabpage.c index b11a7d7e1f..f484044fba 100644 --- a/src/api/tabpage.c +++ b/src/api/tabpage.c @@ -3,6 +3,7 @@ #include <stdlib.h> #include "api/tabpage.h" +#include "api/vim.h" #include "api/defs.h" #include "api/helpers.h" @@ -36,9 +37,31 @@ Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err) return dict_set_value(tab->tp_vars, name, value, err); } -Window tabpage_get_buffer(Tabpage tabpage, Error *err) +Window tabpage_get_window(Tabpage tabpage, Error *err) { - abort(); + Window rv = 0; + tabpage_T *tab = find_tab(tabpage, err); + + if (!tab) { + return rv; + } + + if (tab == curtab) { + return vim_get_current_window(); + } else { + tabpage_T *tp; + win_T *wp; + rv = 1; + + FOR_ALL_TAB_WINDOWS(tp, wp) { + if (tp == tab && wp == tab->tp_curwin) { + return rv; + } + rv++; + } + // There should always be a current window for a tabpage + abort(); + } } bool tabpage_is_valid(Tabpage tabpage) diff --git a/src/api/tabpage.h b/src/api/tabpage.h index 8215b5b9d7..7ff7927f54 100644 --- a/src/api/tabpage.h +++ b/src/api/tabpage.h @@ -35,7 +35,7 @@ Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err); /// @param tabpage The tab page handle /// @param[out] err Details of an error that may have occurred /// @return The Window handle -Window tabpage_get_buffer(Tabpage tabpage, Error *err); +Window tabpage_get_window(Tabpage tabpage, Error *err); /// Checks if a tab page is valid /// |