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 -- b...@moolenaar.net -- 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 -- b...@moolenaar.net -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.