Ramel Eshed wrote:
> On Monday, June 5, 2017 at 8:32:57 PM UTC+3, Bram Moolenaar wrote:
> > Patch 8.0.0626
> > Problem: In the GUI the cursor may flicker.
> > Solution: Check the cmd_silent flag before updating the cursor shape.
> > (Hirohito Higashi, closes #1637)
> > Files: src/getchar.c
> >
> >
> > *** ../vim-8.0.0625/src/getchar.c 2017-04-08 18:41:07.339941299 +0200
> > --- src/getchar.c 2017-06-05 19:28:16.696484466 +0200
> > ***************
> > *** 2913,2920 ****
> > }
> > #ifdef FEAT_GUI
> > /* may unshow different cursor shape */
> > ! if (gui.in_use && shape_changed)
> > ! gui_update_cursor(TRUE, FALSE);
> > #endif
> >
> > --vgetc_busy;
> > --- 2913,2928 ----
> > }
> > #ifdef FEAT_GUI
> > /* may unshow different cursor shape */
> > ! if (gui.in_use)
> > ! {
> > ! if (cmd_silent)
> > ! gui_dont_update_cursor(TRUE);
> > ! else
> > ! gui_can_update_cursor();
> > !
> > ! if (shape_changed)
> > ! gui_update_cursor(TRUE, FALSE);
> > ! }
> > #endif
> >
> > --vgetc_busy;
> > *** ../vim-8.0.0625/src/version.c 2017-06-05 18:46:20.497845949 +0200
> > --- src/version.c 2017-06-05 19:06:06.449739127 +0200
> > ***************
> > *** 766,767 ****
> > --- 766,769 ----
> > { /* Add new patch number below this line */
> > + /**/
> > + 626,
> > /**/
> >
> > --
> > "How is your new girlfriend?"
> > "90-60-90 man!"
> > "What, pale purple?"
> >
> > /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
> > /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
> > \\\ an exciting new programming language -- http://www.Zimbu.org ///
> > \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
>
> Hi Bram,
>
> This match makes the cursor disappear using the following mapping (tested on
> linux):
>
> gvim -u NONE -N
> :noremap <silent> <CR> <CR>
>
> now hit <CR> -> no cursor
Yes, that is wrong. I was wondering about the conditions anyway. I
would think that if shape_changed isn't set then nothing should happen.
How about this:
#ifdef FEAT_GUI
/* may unshow different cursor shape */
if (gui.in_use && shape_changed && !cmd_silent)
gui_update_cursor(TRUE, FALSE);
#endif
But then we perhaps get the flicker again? An alternative is to not
call gui_update_cursor() for NORMAL mode:
#ifdef FEAT_GUI
/* may show different cursor shape */
if (gui.in_use && State != NORMAL && !cmd_silent)
{
int save_State;
save_State = State;
State = NORMAL;
gui_update_cursor(TRUE, FALSE);
State = save_State;
shape_changed = TRUE;
}
#endif
--
hundred-and-one symptoms of being an internet addict:
13. You refer to going to the bathroom as downloading.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.