diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-09-11 08:29:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-11 08:29:33 +0800 |
commit | 2b475cb5cc2196a32085fbbdfd7357cbb02a1cb0 (patch) | |
tree | efbc40dc8fdb5391ce81b70afbfa81df7518c080 /src/nvim/mouse.c | |
parent | af0684f0d578631dae7d857cd065d81288be3cf2 (diff) | |
download | rneovim-2b475cb5cc2196a32085fbbdfd7357cbb02a1cb0.tar.gz rneovim-2b475cb5cc2196a32085fbbdfd7357cbb02a1cb0.tar.bz2 rneovim-2b475cb5cc2196a32085fbbdfd7357cbb02a1cb0.zip |
fix(mouse): click on 'statuscolumn' with 'rightleft' (#25090)
Diffstat (limited to 'src/nvim/mouse.c')
-rw-r--r-- | src/nvim/mouse.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c index 76ac191a68..b8c80cadf5 100644 --- a/src/nvim/mouse.c +++ b/src/nvim/mouse.c @@ -220,7 +220,10 @@ static int get_fpos_of_mouse(pos_T *mpos) // compute the position in the buffer line from the posn on the screen bool below_buffer = mouse_comp_pos(wp, &row, &col, &mpos->lnum); - if (!below_buffer && *wp->w_p_stc != NUL && mouse_col < win_col_off(wp)) { + if (!below_buffer && *wp->w_p_stc != NUL + && (wp->w_p_rl + ? wincol >= wp->w_width_inner - win_col_off(wp) + : wincol < win_col_off(wp))) { return MOUSE_STATUSCOL; } @@ -675,6 +678,10 @@ popupexit: click_col = mouse_col; } + if (in_statuscol && wp->w_p_rl) { + click_col = wp->w_width_inner - click_col - 1; + } + if (click_defs != NULL) { switch (click_defs[click_col].type) { case kStlClickDisabled: @@ -1254,7 +1261,10 @@ retnomove: on_sep_line = grid == DEFAULT_GRID_HANDLE && col >= wp->w_width && col - wp->w_width + 1 == 1; on_winbar = row == -1 && wp->w_winbar_height != 0; on_statuscol = !below_window && !on_status_line && !on_sep_line && !on_winbar - && *wp->w_p_stc != NUL && col < win_col_off(wp); + && *wp->w_p_stc != NUL + && (wp->w_p_rl + ? col >= wp->w_width_inner - win_col_off(wp) + : col < win_col_off(wp)); // The rightmost character of the status line might be a vertical // separator character if there is no connecting window to the right. |