aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-11-20 20:17:10 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-11-20 20:27:12 -0500
commit2a5307202b02d47e26c4430a47db7a4cad422862 (patch)
treec234b85b22930f1b94c09cbefcff29c884e45d35 /src
parent172d5b65616b37b84ba71dd421d8a1314bd53288 (diff)
downloadrneovim-2a5307202b02d47e26c4430a47db7a4cad422862.tar.gz
rneovim-2a5307202b02d47e26c4430a47db7a4cad422862.tar.bz2
rneovim-2a5307202b02d47e26c4430a47db7a4cad422862.zip
menu: remove winbar code
No unmerged Vim patch, applicable to Neovim, depend on WinBar feature. It was merged only for merging Vim patches. It is currently useless in Neovim. Remove it to avoid rendering issues. Close https://github.com/neovim/neovim/issues/12689
Diffstat (limited to 'src')
-rw-r--r--src/nvim/buffer_defs.h10
-rw-r--r--src/nvim/eval.c2
-rw-r--r--src/nvim/menu.c114
-rw-r--r--src/nvim/mouse.c24
-rw-r--r--src/nvim/normal.c5
-rw-r--r--src/nvim/window.c37
6 files changed, 16 insertions, 176 deletions
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index 93fe37b585..dba02a67e8 100644
--- a/src/nvim/buffer_defs.h
+++ b/src/nvim/buffer_defs.h
@@ -1132,12 +1132,6 @@ struct VimMenu {
vimmenu_T *next; ///< Next item in menu
};
-typedef struct {
- int wb_startcol;
- int wb_endcol;
- vimmenu_T *wb_menu;
-} winbar_item_T;
-
/// Structure which contains all information that belongs to a window.
///
/// All row numbers are relative to the start of the window, except w_winrow.
@@ -1354,10 +1348,6 @@ struct window_S {
char_u *w_localdir; /* absolute path of local directory or
NULL */
- vimmenu_T *w_winbar; // The root of the WinBar menu hierarchy.
- winbar_item_T *w_winbar_items; // list of items in the WinBar
- int w_winbar_height; // 1 if there is a window toolbar
-
// Options local to a window.
// They are local because they influence the layout of the window or
// depend on the window layout.
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 45d2bf7a91..b483209f83 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6433,7 +6433,7 @@ dict_T *get_win_info(win_T *wp, int16_t tpnr, int16_t winnr)
tv_dict_add_nr(dict, S_LEN("winrow"), wp->w_winrow + 1);
tv_dict_add_nr(dict, S_LEN("topline"), wp->w_topline);
tv_dict_add_nr(dict, S_LEN("botline"), wp->w_botline - 1);
- tv_dict_add_nr(dict, S_LEN("winbar"), wp->w_winbar_height);
+ tv_dict_add_nr(dict, S_LEN("winbar"), 0);
tv_dict_add_nr(dict, S_LEN("width"), wp->w_width);
tv_dict_add_nr(dict, S_LEN("bufnr"), wp->w_buffer->b_fnum);
tv_dict_add_nr(dict, S_LEN("wincol"), wp->w_wincol + 1);
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 4ba2e36656..7094d3be90 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -55,16 +55,10 @@ static bool menu_is_winbar(const char_u *const name)
return (STRNCMP(name, "WinBar", 6) == 0);
}
-int winbar_height(const win_T *const wp)
- FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL
-{
- return wp->w_winbar != NULL && wp->w_winbar->children != NULL ? 1 : 0;
-}
-
static vimmenu_T **get_root_menu(const char_u *const name)
FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL
{
- return menu_is_winbar(name) ? &curwin->w_winbar : &root_menu;
+ return &root_menu;
}
/// Do the :menu command and relatives.
@@ -191,10 +185,6 @@ ex_menu(exarg_T *eap)
}
vimmenu_T **root_menu_ptr = get_root_menu(menu_path);
- if (root_menu_ptr == &curwin->w_winbar) {
- // Assume the window toolbar menu will change.
- redraw_later(curwin, NOT_VALID);
- }
if (enable != kNone) {
// Change sensitivity of the menu.
@@ -270,19 +260,6 @@ ex_menu(exarg_T *eap)
xfree(map_buf);
}
- if (root_menu_ptr == &curwin->w_winbar) {
- const int h = winbar_height(curwin);
-
- if (h != curwin->w_winbar_height) {
- if (h == 0) {
- curwin->w_height++;
- } else if (curwin->w_height > 0) {
- curwin->w_height--;
- }
- curwin->w_winbar_height = h;
- }
- }
-
ui_call_update_menu();
theend:
@@ -661,14 +638,6 @@ remove_menu (
return OK;
}
-// Remove the WinBar menu from window "wp".
-void remove_winbar(win_T *wp)
- FUNC_ATTR_NONNULL_ALL
-{
- remove_menu(&wp->w_winbar, (char_u *)"", MENU_ALL_MODES, true);
- xfree(wp->w_winbar_items);
-}
-
/*
* Free the given menu structure and remove it from the linked list.
*/
@@ -937,7 +906,6 @@ static void show_menus_recursive(vimmenu_T *menu, int modes, int depth)
* Used when expanding menu names.
*/
static vimmenu_T *expand_menu = NULL;
-static vimmenu_T *expand_menu_alt = NULL;
static int expand_modes = 0x0;
static int expand_emenu; /* TRUE for ":emenu" command */
@@ -992,8 +960,6 @@ char_u *set_context_in_menu_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forc
return NULL; // TODO(vim): check for next command?
}
if (*p == NUL) { // Complete the menu name
- bool try_alt_menu = true;
-
// With :unmenu, you only want to match menus for the appropriate mode.
// With :menu though you might want to add a menu with the same name as
// one in another mode, so match menus from other modes too.
@@ -1025,10 +991,6 @@ char_u *set_context_in_menu_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forc
break;
}
menu = menu->next;
- if (menu == NULL && try_alt_menu) {
- menu = curwin->w_winbar;
- try_alt_menu = false;
- }
}
if (menu == NULL) {
/* No menu found with the name we were looking for */
@@ -1037,18 +999,12 @@ char_u *set_context_in_menu_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forc
}
name = p;
menu = menu->children;
- try_alt_menu = false;
}
xfree(path_name);
xp->xp_context = expand_menus ? EXPAND_MENUNAMES : EXPAND_MENUS;
xp->xp_pattern = after_dot;
expand_menu = menu;
- if (expand_menu == root_menu) {
- expand_menu_alt = curwin->w_winbar;
- } else {
- expand_menu_alt = NULL;
- }
} else { // We're in the mapping part
xp->xp_context = EXPAND_NOTHING;
}
@@ -1062,13 +1018,11 @@ char_u *set_context_in_menu_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forc
char_u *get_menu_name(expand_T *xp, int idx)
{
static vimmenu_T *menu = NULL;
- static bool did_alt_menu = false;
char_u *str;
static int should_advance = FALSE;
if (idx == 0) { /* first call: start at first item */
menu = expand_menu;
- did_alt_menu = false;
should_advance = false;
}
@@ -1077,10 +1031,6 @@ char_u *get_menu_name(expand_T *xp, int idx)
|| menu_is_separator(menu->dname)
|| menu->children == NULL)) {
menu = menu->next;
- if (menu == NULL && !did_alt_menu) {
- menu = expand_menu_alt;
- did_alt_menu = true;
- }
}
if (menu == NULL) /* at end of linked list */
@@ -1100,10 +1050,6 @@ char_u *get_menu_name(expand_T *xp, int idx)
if (should_advance) {
// Advance to next menu entry.
menu = menu->next;
- if (menu == NULL && !did_alt_menu) {
- menu = expand_menu_alt;
- did_alt_menu = true;
- }
}
should_advance = !should_advance;
@@ -1118,7 +1064,6 @@ char_u *get_menu_name(expand_T *xp, int idx)
char_u *get_menu_names(expand_T *xp, int idx)
{
static vimmenu_T *menu = NULL;
- static bool did_alt_menu = false;
#define TBUFFER_LEN 256
static char_u tbuffer[TBUFFER_LEN]; /*hack*/
char_u *str;
@@ -1126,7 +1071,6 @@ char_u *get_menu_names(expand_T *xp, int idx)
if (idx == 0) { /* first call: start at first item */
menu = expand_menu;
- did_alt_menu = false;
should_advance = false;
}
@@ -1136,10 +1080,6 @@ char_u *get_menu_names(expand_T *xp, int idx)
|| (expand_emenu && menu_is_separator(menu->dname))
|| menu->dname[STRLEN(menu->dname) - 1] == '.')) {
menu = menu->next;
- if (menu == NULL && !did_alt_menu) {
- menu = expand_menu_alt;
- did_alt_menu = true;
- }
}
if (menu == NULL) /* at end of linked list */
@@ -1173,10 +1113,6 @@ char_u *get_menu_names(expand_T *xp, int idx)
if (should_advance) {
// Advance to next menu entry.
menu = menu->next;
- if (menu == NULL && !did_alt_menu) {
- menu = expand_menu_alt;
- did_alt_menu = true;
- }
}
should_advance = !should_advance;
@@ -1470,7 +1406,6 @@ static void execute_menu(const exarg_T *eap, vimmenu_T *menu)
}
}
- // For the WinBar menu always use the Normal mode menu.
if (idx == -1 || eap == NULL) {
mode = (char_u *)"Normal";
idx = MENU_INDEX_NORMAL;
@@ -1540,53 +1475,6 @@ void ex_emenu(exarg_T *eap)
execute_menu(eap, menu);
}
-// Handle a click in the window toolbar of "wp" at column "col".
-void winbar_click(win_T *wp, int col)
- FUNC_ATTR_NONNULL_ALL
-{
- if (wp->w_winbar_items == NULL) {
- return;
- }
- for (int idx = 0; wp->w_winbar_items[idx].wb_menu != NULL; idx++) {
- winbar_item_T *item = &wp->w_winbar_items[idx];
-
- if (col >= item->wb_startcol && col <= item->wb_endcol) {
- win_T *save_curwin = NULL;
- const pos_T save_visual = VIsual;
- const int save_visual_active = VIsual_active;
- const int save_visual_select = VIsual_select;
- const int save_visual_reselect = VIsual_reselect;
- const int save_visual_mode = VIsual_mode;
-
- if (wp != curwin) {
- // Clicking in the window toolbar of a not-current window.
- // Make that window the current one and save Visual mode.
- save_curwin = curwin;
- VIsual_active = false;
- curwin = wp;
- curbuf = curwin->w_buffer;
- check_cursor();
- }
-
- // Note: the command might close the current window.
- execute_menu(NULL, item->wb_menu);
-
- if (save_curwin != NULL && win_valid(save_curwin)) {
- curwin = save_curwin;
- curbuf = curwin->w_buffer;
- VIsual = save_visual;
- VIsual_active = save_visual_active;
- VIsual_select = save_visual_select;
- VIsual_reselect = save_visual_reselect;
- VIsual_mode = save_visual_mode;
- }
- if (!win_valid(wp)) {
- break;
- }
- }
- }
-}
-
/*
* Translation of menu names. Just a simple lookup table.
*/
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c
index cff88de00b..f05dade73f 100644
--- a/src/nvim/mouse.c
+++ b/src/nvim/mouse.c
@@ -60,7 +60,6 @@ int jump_to_mouse(int flags,
{
static int on_status_line = 0; // #lines below bottom of window
static int on_sep_line = 0; // on separator right of window
- static bool in_winbar = false;
static int prev_row = -1;
static int prev_col = -1;
static win_T *dragwin = NULL; // window being dragged
@@ -101,18 +100,6 @@ retnomove:
if (on_sep_line) {
return IN_SEP_LINE;
}
- if (in_winbar) {
- // A quick second click may arrive as a double-click, but we use it
- // as a second click in the WinBar.
- if ((mod_mask & MOD_MASK_MULTI_CLICK) && !(flags & MOUSE_RELEASED)) {
- wp = mouse_find_win(&grid, &row, &col);
- if (wp == NULL) {
- return IN_UNKNOWN;
- }
- winbar_click(wp, col);
- }
- return IN_OTHER_WIN | MOUSE_WINBAR;
- }
if (flags & MOUSE_MAY_STOP_VIS) {
end_visual_mode();
redraw_curbuf_later(INVERTED); // delete the inversion
@@ -142,13 +129,8 @@ retnomove:
dragwin = NULL;
if (row == -1) {
- // A click in the window toolbar does not enter another window or
- // change Visual highlighting.
- winbar_click(wp, col);
- in_winbar = true;
- return IN_OTHER_WIN | MOUSE_WINBAR;
+ return IN_OTHER_WIN;
}
- in_winbar = false;
// winpos and height may change in win_enter()!
if (grid == DEFAULT_GRID_HANDLE && row >= wp->w_height) {
@@ -239,9 +221,6 @@ retnomove:
did_drag |= count;
}
return IN_SEP_LINE; // Cursor didn't move
- } else if (in_winbar) {
- // After a click on the window toolbar don't start Visual mode.
- return IN_OTHER_WIN | MOUSE_WINBAR;
} else {
// keep_window_focus must be true
// before moving the cursor for a left click, stop Visual mode
@@ -503,7 +482,6 @@ win_T *mouse_find_win(int *gridp, int *rowp, int *colp)
// exist.
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
if (wp == fp->fr_win) {
- *rowp -= wp->w_winbar_height;
return wp;
}
}
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 4b26ae259e..aeada66964 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -2601,11 +2601,6 @@ do_mouse (
oap == NULL ? NULL : &(oap->inclusive),
which_button);
- // A click in the window toolbar has no side effects.
- if (jump_flags & MOUSE_WINBAR) {
- return false;
- }
-
moved = (jump_flags & CURSOR_MOVED);
in_status_line = (jump_flags & IN_STATUS_LINE);
in_sep_line = (jump_flags & IN_SEP_LINE);
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 17d9b8f483..72ee400e40 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -1112,8 +1112,7 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
// add a status line when p_ls == 1 and splitting the first window
if (one_nonfloat() && p_ls == 1 && oldwin->w_status_height == 0) {
- if ((oldwin->w_height + oldwin->w_winbar_height) <= p_wmh
- && new_in_layout) {
+ if (oldwin->w_height <= p_wmh && new_in_layout) {
EMSG(_(e_noroom));
return FAIL;
}
@@ -1210,7 +1209,7 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
* height.
*/
// Current window requires at least 1 space.
- wmh1 = (p_wmh == 0 ? 1 : p_wmh) + curwin->w_winbar_height;
+ wmh1 = p_wmh == 0 ? 1 : p_wmh;
needed = wmh1 + STATUS_HEIGHT;
if (flags & WSP_ROOM) {
needed += p_wh - wmh1;
@@ -1408,12 +1407,12 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
if (flags & (WSP_TOP | WSP_BOT)) {
/* set height and row of new window to full height */
wp->w_winrow = tabline_height();
- win_new_height(wp, curfrp->fr_height - (p_ls > 0) - wp->w_winbar_height);
+ win_new_height(wp, curfrp->fr_height - (p_ls > 0));
wp->w_status_height = (p_ls > 0);
} else {
/* height and row of new window is same as current window */
wp->w_winrow = oldwin->w_winrow;
- win_new_height(wp, oldwin->w_height + oldwin->w_winbar_height);
+ win_new_height(wp, oldwin->w_height);
wp->w_status_height = oldwin->w_status_height;
}
frp->fr_height = curfrp->fr_height;
@@ -1460,7 +1459,7 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
* one row for the status line */
win_new_height(wp, new_size);
if (flags & (WSP_TOP | WSP_BOT)) {
- int new_fr_height = curfrp->fr_height - new_size + wp->w_winbar_height;
+ int new_fr_height = curfrp->fr_height - new_size;
if (!((flags & WSP_BOT) && p_ls == 0)) {
new_fr_height -= STATUS_HEIGHT;
@@ -1474,8 +1473,7 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
wp->w_status_height = STATUS_HEIGHT;
oldwin->w_winrow += wp->w_height + STATUS_HEIGHT;
} else { // new window below current one
- wp->w_winrow = oldwin->w_winrow + oldwin->w_height
- + STATUS_HEIGHT + oldwin->w_winbar_height;
+ wp->w_winrow = oldwin->w_winrow + oldwin->w_height + STATUS_HEIGHT;
wp->w_status_height = oldwin->w_status_height;
if (!(flags & WSP_BOT)) {
oldwin->w_status_height = STATUS_HEIGHT;
@@ -1690,7 +1688,7 @@ make_windows (
- (p_wiw - p_wmw)) / (p_wmw + 1);
} else {
// Each window needs at least 'winminheight' lines and a status line.
- maxcount = (curwin->w_height + curwin->w_winbar_height
+ maxcount = (curwin->w_height
+ curwin->w_status_height
- (p_wh - p_wmh)) / (p_wmh + STATUS_HEIGHT);
}
@@ -3155,9 +3153,7 @@ frame_new_height (
if (topfrp->fr_win != NULL) {
// Simple case: just one window.
win_new_height(topfrp->fr_win,
- height
- - topfrp->fr_win->w_status_height
- - topfrp->fr_win->w_winbar_height);
+ height - topfrp->fr_win->w_status_height);
} else if (topfrp->fr_layout == FR_ROW) {
do {
// All frames in this row get the same new height.
@@ -3464,8 +3460,7 @@ static void frame_fix_width(win_T *wp)
static void frame_fix_height(win_T *wp)
FUNC_ATTR_NONNULL_ALL
{
- wp->w_frame->fr_height =
- wp->w_height + wp->w_status_height + wp->w_winbar_height;
+ wp->w_frame->fr_height = wp->w_height + wp->w_status_height;
}
/*
@@ -3488,11 +3483,10 @@ static int frame_minheight(frame_T *topfrp, win_T *next_curwin)
// window: minimal height of the window plus status line
m = p_wmh + topfrp->fr_win->w_status_height;
if (topfrp->fr_win == curwin && next_curwin == NULL) {
- // Current window is minimal one line high and WinBar is visible.
+ // Current window is minimal one line high.
if (p_wmh == 0) {
m++;
}
- m += curwin->w_winbar_height;
}
}
} else if (topfrp->fr_layout == FR_ROW) {
@@ -4804,8 +4798,6 @@ win_free (
qf_free_all(wp);
- remove_winbar(wp);
-
xfree(wp->w_p_cc_cols);
win_free_grid(wp, false);
@@ -5092,8 +5084,7 @@ static void frame_comp_pos(frame_T *topfrp, int *row, int *col)
wp->w_redr_status = true;
wp->w_pos_changed = true;
}
- // WinBar will not show if the window height is zero
- const int h = wp->w_height + wp->w_winbar_height + wp->w_status_height;
+ const int h = wp->w_height + wp->w_status_height;
*row += h > topfrp->fr_height ? topfrp->fr_height : h;
*col += wp->w_width + wp->w_vsep_width;
} else {
@@ -5135,7 +5126,6 @@ void win_setheight_win(int height, win_T *win)
if (height == 0) {
height = 1;
}
- height += curwin->w_winbar_height;
}
if (win->w_floating) {
@@ -5231,9 +5221,8 @@ static void frame_setheight(frame_T *curfrp, int height)
room_cmdline = 0;
} else {
win_T *wp = lastwin_nofloating();
- room_cmdline = Rows - p_ch - (wp->w_winrow
- + wp->w_height + wp->w_winbar_height +
- wp->w_status_height);
+ room_cmdline = Rows - p_ch
+ - (wp->w_winrow + wp->w_height + wp->w_status_height);
if (room_cmdline < 0) {
room_cmdline = 0;
}