mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
API: Refactor: Register/unregister created/destroyed tabpages
- Add the 'handle' field to `tabpage_T` - Add declare/implement functions for registering/unregistering/retrieving tabpages - Register/unregister tabpages when they are created/destroyed.
This commit is contained in:
parent
20848c4064
commit
5fdf854f78
@ -30,9 +30,11 @@ static uint64_t next_handle = 1;
|
|||||||
|
|
||||||
HANDLE_IMPL(buf_T, buffer)
|
HANDLE_IMPL(buf_T, buffer)
|
||||||
HANDLE_IMPL(win_T, window)
|
HANDLE_IMPL(win_T, window)
|
||||||
|
HANDLE_IMPL(tabpage_T, tabpage)
|
||||||
|
|
||||||
void handle_init()
|
void handle_init()
|
||||||
{
|
{
|
||||||
HANDLE_INIT(buffer);
|
HANDLE_INIT(buffer);
|
||||||
HANDLE_INIT(window);
|
HANDLE_INIT(window);
|
||||||
|
HANDLE_INIT(tabpage);
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
HANDLE_DECLS(buf_T, buffer)
|
HANDLE_DECLS(buf_T, buffer)
|
||||||
HANDLE_DECLS(win_T, window)
|
HANDLE_DECLS(win_T, window)
|
||||||
|
HANDLE_DECLS(tabpage_T, tabpage)
|
||||||
|
|
||||||
void handle_init(void);
|
void handle_init(void);
|
||||||
|
|
||||||
|
@ -738,6 +738,7 @@ struct diffblock_S {
|
|||||||
*/
|
*/
|
||||||
typedef struct tabpage_S tabpage_T;
|
typedef struct tabpage_S tabpage_T;
|
||||||
struct tabpage_S {
|
struct tabpage_S {
|
||||||
|
uint64_t handle;
|
||||||
tabpage_T *tp_next; /* next tabpage or NULL */
|
tabpage_T *tp_next; /* next tabpage or NULL */
|
||||||
frame_T *tp_topframe; /* topframe for the windows */
|
frame_T *tp_topframe; /* topframe for the windows */
|
||||||
win_T *tp_curwin; /* current window in this Tab page */
|
win_T *tp_curwin; /* current window in this Tab page */
|
||||||
|
@ -2845,6 +2845,7 @@ void win_init_size(void)
|
|||||||
static tabpage_T *alloc_tabpage(void)
|
static tabpage_T *alloc_tabpage(void)
|
||||||
{
|
{
|
||||||
tabpage_T *tp = xcalloc(1, sizeof(tabpage_T));
|
tabpage_T *tp = xcalloc(1, sizeof(tabpage_T));
|
||||||
|
handle_register_tabpage(tp);
|
||||||
|
|
||||||
/* init t: variables */
|
/* init t: variables */
|
||||||
tp->tp_vars = dict_alloc();
|
tp->tp_vars = dict_alloc();
|
||||||
@ -2859,6 +2860,7 @@ void free_tabpage(tabpage_T *tp)
|
|||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
|
handle_unregister_tabpage(tp);
|
||||||
diff_clear(tp);
|
diff_clear(tp);
|
||||||
for (idx = 0; idx < SNAP_COUNT; ++idx)
|
for (idx = 0; idx < SNAP_COUNT; ++idx)
|
||||||
clear_snapshot(tp, idx);
|
clear_snapshot(tp, idx);
|
||||||
|
Loading…
Reference in New Issue
Block a user