1
0
forked from aniani/vim

patch 7.4.1545

Problem:    GTK3: horizontal cursor movement in Visual selection not good.
Solution:   Make it work better. (Kazunobu Kuriyama)
This commit is contained in:
Bram Moolenaar 2016-03-12 16:28:18 +01:00
parent 583c1f14a4
commit b4ebf9ae3b
2 changed files with 18 additions and 3 deletions

View File

@ -650,7 +650,8 @@ gui_gtk3_should_draw_cursor(void)
{
unsigned int cond = 0;
cond |= gui_gtk_is_blink_on();
cond |= is_key_pressed;
if (gui.cursor_col >= gui.col)
cond |= is_key_pressed;
cond |= gui.in_focus == FALSE;
return cond;
}
@ -686,17 +687,29 @@ draw_event(GtkWidget *widget,
if (blink_mode)
gui_gtk3_redraw(rect.x, rect.y, rect.width, rect.height);
else
gui_redraw(rect.x, rect.y, rect.width, rect.height);
{
if (get_real_state() & VISUAL)
gui_gtk3_redraw(rect.x, rect.y,
rect.width, rect.height);
else
gui_redraw(rect.x, rect.y, rect.width, rect.height);
}
}
}
cairo_rectangle_list_destroy(list);
if (get_real_state() & VISUAL)
{
if (gui.cursor_row == gui.row && gui.cursor_col >= gui.col)
gui_update_cursor(TRUE, TRUE);
}
cairo_paint(cr);
}
gui.by_signal = FALSE;
/* Add the cursor to the window if necessary.*/
if (gui_gtk3_should_draw_cursor())
if (gui_gtk3_should_draw_cursor() && blink_mode)
gui_gtk3_update_cursor(cr);
return FALSE;

View File

@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1545,
/**/
1544,
/**/