aboutsummaryrefslogtreecommitdiff
path: root/src/api/tabpage.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-11 11:12:11 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-13 14:11:32 -0300
commit14f2a3d533c70f45f73c613962fef952e402d97e (patch)
tree78b96346311e0b6a7466f4a1c4fad51428f00842 /src/api/tabpage.c
parente026be46af28701c6791d80419e7eb26b7ef858b (diff)
downloadrneovim-14f2a3d533c70f45f73c613962fef952e402d97e.tar.gz
rneovim-14f2a3d533c70f45f73c613962fef952e402d97e.tar.bz2
rneovim-14f2a3d533c70f45f73c613962fef952e402d97e.zip
API: Implement tabpage_get_window
Diffstat (limited to 'src/api/tabpage.c')
-rw-r--r--src/api/tabpage.c27
1 files changed, 25 insertions, 2 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)