0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.4.666

Problem:    There is a chance that Vim may lock up.
Solution:   Handle timer events differently. (Aaron Burrow)
This commit is contained in:
Bram Moolenaar
2015-03-20 16:26:54 +01:00
parent 76feaf1bfe
commit b1fc2bf29c
2 changed files with 25 additions and 9 deletions

View File

@@ -7096,19 +7096,33 @@ xterm_update()
{ {
XEvent event; XEvent event;
while (XtAppPending(app_context) && !vim_is_input_buf_full()) for (;;)
{ {
XtAppNextEvent(app_context, &event); XtInputMask mask = XtAppPending(app_context);
#ifdef FEAT_CLIENTSERVER
{
XPropertyEvent *e = (XPropertyEvent *)&event;
if (e->type == PropertyNotify && e->window == commWindow if (mask == 0 || vim_is_input_buf_full())
break;
if (mask & XtIMXEvent)
{
/* There is an event to process. */
XtAppNextEvent(app_context, &event);
#ifdef FEAT_CLIENTSERVER
{
XPropertyEvent *e = (XPropertyEvent *)&event;
if (e->type == PropertyNotify && e->window == commWindow
&& e->atom == commProperty && e->state == PropertyNewValue) && e->atom == commProperty && e->state == PropertyNewValue)
serverEventProc(xterm_dpy, &event); serverEventProc(xterm_dpy, &event);
} }
#endif #endif
XtDispatchEvent(&event); XtDispatchEvent(&event);
}
else
{
/* There is something else than an event to process. */
XtAppProcessEvent(app_context, mask);
}
} }
} }

View File

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