Patch 7.4.1890
Problem: GUI: When channel data is received the cursor blinking is
interrupted. (Ramel Eshed)
Solution: Don't update the cursor when it is blinking.
Files: src/screen.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro,
src/gui_mac.c, src/proto/gui_mac.pro, src/gui_photon.c,
src/proto/gui_photon.pro, src/gui_w32.c, src/proto/gui_w32.pro,
src/gui_x11.c, src/proto/gui_x11.pro
*** ../vim-7.4.1889/src/screen.c 2016-05-24 10:51:26.543537913 +0200
--- src/screen.c 2016-06-04 15:53:40.674214953 +0200
***************
*** 432,438 ****
#ifdef FEAT_GUI
if (gui.in_use)
{
! gui_update_cursor(TRUE, FALSE);
gui_mch_flush();
}
#endif
--- 432,441 ----
#ifdef FEAT_GUI
if (gui.in_use)
{
! /* Don't update the cursor while it is blinking, it will get
! * updated soon and this avoids interrupting the blinking. */
! if (!gui_mch_is_blinking())
! gui_update_cursor(FALSE, FALSE);
gui_mch_flush();
}
#endif
*** ../vim-7.4.1889/src/gui_gtk_x11.c 2016-06-02 14:29:59.132661030 +0200
--- src/gui_gtk_x11.c 2016-06-04 16:03:17.514207018 +0200
***************
*** 810,815 ****
--- 810,821 ----
}
#endif
+ int
+ gui_mch_is_blinking(void)
+ {
+ return blink_state != BLINK_NONE;
+ }
+
void
gui_mch_set_blinking(long waittime, long on, long off)
{
*** ../vim-7.4.1889/src/proto/gui_gtk_x11.pro 2016-01-19 13:21:55.837334377
+0100
--- src/proto/gui_gtk_x11.pro 2016-06-04 15:42:58.986223780 +0200
***************
*** 1,6 ****
--- 1,7 ----
/* gui_gtk_x11.c */
void gui_mch_prepare(int *argc, char **argv);
void gui_mch_free_all(void);
+ int gui_mch_is_blinking(void);
void gui_mch_set_blinking(long waittime, long on, long off);
void gui_mch_stop_blink(void);
void gui_mch_start_blink(void);
*** ../vim-7.4.1889/src/gui_mac.c 2016-06-02 22:27:04.256267269 +0200
--- src/gui_mac.c 2016-06-04 16:03:02.278207227 +0200
***************
*** 5114,5119 ****
--- 5114,5124 ----
#endif
}
+ int
+ gui_mch_is_blinking(void)
+ {
+ return FALSE;
+ }
/*
* Cursor blink functions.
*** ../vim-7.4.1889/src/proto/gui_mac.pro 2016-01-30 13:28:23.925007165
+0100
--- src/proto/gui_mac.pro 2016-06-04 16:02:58.858207274 +0200
***************
*** 14,19 ****
--- 14,20 ----
void gui_mac_focus_change(EventRecord *event);
void gui_mac_update(EventRecord *event);
short gui_mch_get_mac_menu_item_index(vimmenu_T *menu, vimmenu_T *parent);
+ int gui_mch_is_blinking(void);
void gui_mch_set_blinking(long wait, long on, long off);
void gui_mch_stop_blink(void);
void gui_mch_start_blink(void);
*** ../vim-7.4.1889/src/gui_photon.c 2016-04-26 20:59:24.728486510 +0200
--- src/gui_photon.c 2016-06-04 16:04:51.706205722 +0200
***************
*** 2232,2237 ****
--- 2232,2243 ----
DRAW_END;
}
+ int
+ gui_mch_is_blinking(void)
+ {
+ return blink_state != BLINK_NONE;
+ }
+
void
gui_mch_set_blinking(long wait, long on, long off)
{
*** ../vim-7.4.1889/src/proto/gui_photon.pro 2016-01-19 13:21:55.837334377
+0100
--- src/proto/gui_photon.pro 2016-06-04 16:05:13.258205426 +0200
***************
*** 39,44 ****
--- 39,45 ----
void gui_mch_draw_string(int row, int col, char_u *s, int len, int flags);
void gui_mch_draw_hollow_cursor(guicolor_T color);
void gui_mch_draw_part_cursor(int w, int h, guicolor_T color);
+ int gui_mch_is_blinking(void);
void gui_mch_set_blinking(long wait, long on, long off);
void gui_mch_start_blink(void);
void gui_mch_stop_blink(void);
*** ../vim-7.4.1889/src/gui_w32.c 2016-06-02 15:49:33.008595362 +0200
--- src/gui_w32.c 2016-06-04 16:05:47.706204952 +0200
***************
*** 540,545 ****
--- 540,551 ----
static long_u blink_offtime = 250;
static UINT blink_timer = 0;
+ int
+ gui_mch_is_blinking(void)
+ {
+ return blink_state != BLINK_NONE;
+ }
+
void
gui_mch_set_blinking(long wait, long on, long off)
{
*** ../vim-7.4.1889/src/proto/gui_w32.pro 2016-01-29 21:11:20.967061365
+0100
--- src/proto/gui_w32.pro 2016-06-04 16:05:52.486204886 +0200
***************
*** 1,6 ****
--- 1,7 ----
/* gui_w32.c */
int directx_enabled(void);
int gui_mch_set_rendering_options(char_u *s);
+ int gui_mch_is_blinking(void);
void gui_mch_set_blinking(long wait, long on, long off);
void gui_mch_stop_blink(void);
void gui_mch_start_blink(void);
*** ../vim-7.4.1889/src/gui_x11.c 2016-06-02 14:29:59.136661030 +0200
--- src/gui_x11.c 2016-06-04 16:06:17.030204548 +0200
***************
*** 3155,3160 ****
--- 3155,3166 ----
static long_u blink_offtime = 250;
static XtIntervalId blink_timer = (XtIntervalId)0;
+ int
+ gui_mch_is_blinking(void)
+ {
+ return blink_state != BLINK_NONE;
+ }
+
void
gui_mch_set_blinking(long waittime, long on, long off)
{
*** ../vim-7.4.1889/src/proto/gui_x11.pro 2016-01-19 13:21:55.841334333
+0100
--- src/proto/gui_x11.pro 2016-06-04 16:06:20.258204504 +0200
***************
*** 53,58 ****
--- 53,59 ----
void gui_mch_menu_hidden(vimmenu_T *menu, int hidden);
void gui_mch_draw_menubar(void);
void gui_x11_menu_cb(Widget w, XtPointer client_data, XtPointer call_data);
+ int gui_mch_is_blinking(void);
void gui_mch_set_blinking(long waittime, long on, long off);
void gui_mch_stop_blink(void);
void gui_mch_start_blink(void);
*** ../vim-7.4.1889/src/version.c 2016-06-04 14:51:56.434265908 +0200
--- src/version.c 2016-06-04 16:23:02.862190712 +0200
***************
*** 755,756 ****
--- 755,758 ----
{ /* Add new patch number below this line */
+ /**/
+ 1890,
/**/
--
The future isn't what it used to be.
/// 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.