summaryrefslogtreecommitdiff
path: root/src/edit.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-09-21 20:48:04 +0200
committerBram Moolenaar <Bram@vim.org>2019-09-21 20:48:04 +0200
commitb20b9e14ddd8db111e886ad0494e15b955159426 (patch)
tree81bf23be4dbc17d4b793a29f3252448f5f1e7322 /src/edit.c
parent4d5c12626c98df23e1a5d953692d946310ddfa9c (diff)
downloadvim-git-b20b9e14ddd8db111e886ad0494e15b955159426.tar.gz
patch 8.1.2062: the mouse code is spread outv8.1.2062
Problem: The mouse code is spread out. Solution: Move all the mouse code to mouse.c. (Yegappan Lakshmanan, closes #4959)
Diffstat (limited to 'src/edit.c')
-rw-r--r--src/edit.c147
1 files changed, 8 insertions, 139 deletions
diff --git a/src/edit.c b/src/edit.c
index 67141448f..c6486be3a 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -27,7 +27,6 @@ static void ins_ctrl_v(void);
#ifdef FEAT_JOB_CHANNEL
static void init_prompt(int cmdchar_todo);
#endif
-static void undisplay_dollar(void);
static void insert_special(int, int, int);
static void internal_format(int textwidth, int second_indent, int flags, int format_only, int c);
static void check_auto_format(int);
@@ -56,10 +55,6 @@ static void ins_ctrl_o(void);
static void ins_shift(int c, int lastc);
static void ins_del(void);
static int ins_bs(int c, int mode, int *inserted_space_p);
-#ifdef FEAT_MOUSE
-static void ins_mouse(int c);
-static void ins_mousescroll(int dir);
-#endif
#if defined(FEAT_GUI_TABLINE) || defined(PROTO)
static void ins_tabline(int c);
#endif
@@ -322,9 +317,7 @@ edit(
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
#endif
-#ifdef FEAT_MOUSE
setmouse();
-#endif
#ifdef FEAT_CMDL_INFO
clear_showcmd();
#endif
@@ -1759,7 +1752,7 @@ display_dollar(colnr_T col)
* Call this function before moving the cursor from the normal insert position
* in insert mode.
*/
- static void
+ void
undisplay_dollar(void)
{
if (dollar_vcol >= 0)
@@ -4508,9 +4501,7 @@ ins_esc(
/* need to position cursor again (e.g. when on a TAB ) */
changed_cline_bef_curs();
-#ifdef FEAT_MOUSE
setmouse();
-#endif
#ifdef CURSOR_SHAPE
ui_cursor_shape(); /* may show different cursor shape */
#endif
@@ -5157,134 +5148,6 @@ ins_bs(
return did_backspace;
}
-#ifdef FEAT_MOUSE
- static void
-ins_mouse(int c)
-{
- pos_T tpos;
- win_T *old_curwin = curwin;
-
-# ifdef FEAT_GUI
- /* When GUI is active, also move/paste when 'mouse' is empty */
- if (!gui.in_use)
-# endif
- if (!mouse_has(MOUSE_INSERT))
- return;
-
- undisplay_dollar();
- tpos = curwin->w_cursor;
- if (do_mouse(NULL, c, BACKWARD, 1L, 0))
- {
- win_T *new_curwin = curwin;
-
- if (curwin != old_curwin && win_valid(old_curwin))
- {
- /* Mouse took us to another window. We need to go back to the
- * previous one to stop insert there properly. */
- curwin = old_curwin;
- curbuf = curwin->w_buffer;
-#ifdef FEAT_JOB_CHANNEL
- if (bt_prompt(curbuf))
- // Restart Insert mode when re-entering the prompt buffer.
- curbuf->b_prompt_insert = 'A';
-#endif
- }
- start_arrow(curwin == old_curwin ? &tpos : NULL);
- if (curwin != new_curwin && win_valid(new_curwin))
- {
- curwin = new_curwin;
- curbuf = curwin->w_buffer;
- }
-# ifdef FEAT_CINDENT
- can_cindent = TRUE;
-# endif
- }
-
- /* redraw status lines (in case another window became active) */
- redraw_statuslines();
-}
-
- static void
-ins_mousescroll(int dir)
-{
- pos_T tpos;
- win_T *old_curwin = curwin, *wp;
- int did_scroll = FALSE;
-
- tpos = curwin->w_cursor;
-
- if (mouse_row >= 0 && mouse_col >= 0)
- {
- int row, col;
-
- row = mouse_row;
- col = mouse_col;
-
- /* find the window at the pointer coordinates */
- wp = mouse_find_win(&row, &col, FIND_POPUP);
- if (wp == NULL)
- return;
- curwin = wp;
- curbuf = curwin->w_buffer;
- }
- if (curwin == old_curwin)
- undisplay_dollar();
-
- /* Don't scroll the window in which completion is being done. */
- if (!pum_visible() || curwin != old_curwin)
- {
- if (dir == MSCR_DOWN || dir == MSCR_UP)
- {
- if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
- scroll_redraw(dir,
- (long)(curwin->w_botline - curwin->w_topline));
- else
- scroll_redraw(dir, 3L);
-# ifdef FEAT_TEXT_PROP
- if (WIN_IS_POPUP(curwin))
- popup_set_firstline(curwin);
-# endif
- }
-#ifdef FEAT_GUI
- else
- {
- int val, step = 6;
-
- if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
- step = curwin->w_width;
- val = curwin->w_leftcol + (dir == MSCR_RIGHT ? -step : step);
- if (val < 0)
- val = 0;
- gui_do_horiz_scroll(val, TRUE);
- }
-#endif
- did_scroll = TRUE;
- }
-
- curwin->w_redr_status = TRUE;
-
- curwin = old_curwin;
- curbuf = curwin->w_buffer;
-
- /* The popup menu may overlay the window, need to redraw it.
- * TODO: Would be more efficient to only redraw the windows that are
- * overlapped by the popup menu. */
- if (pum_visible() && did_scroll)
- {
- redraw_all_later(NOT_VALID);
- ins_compl_show_pum();
- }
-
- if (!EQUAL_POS(curwin->w_cursor, tpos))
- {
- start_arrow(&tpos);
-# ifdef FEAT_CINDENT
- can_cindent = TRUE;
-# endif
- }
-}
-#endif
-
/*
* Handle receiving P_PS: start paste mode. Inserts the following text up to
* P_PE literally.
@@ -6401,10 +6264,16 @@ do_insert_char_pre(int c)
#if defined(FEAT_CINDENT) || defined(PROTO)
int
-can_cindent_get(void)
+get_can_cindent(void)
{
return can_cindent;
}
+
+ void
+set_can_cindent(int val)
+{
+ can_cindent = val;
+}
#endif
/*