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
committed by Douglas Drumond
parent 534501977d
commit 00c0c871b6
2 changed files with 25 additions and 9 deletions
+23 -9
View File
@@ -7118,19 +7118,33 @@ xterm_update()
{
XEvent event;
while (XtAppPending(app_context) && !vim_is_input_buf_full())
for (;;)
{
XtAppNextEvent(app_context, &event);
#ifdef FEAT_CLIENTSERVER
{
XPropertyEvent *e = (XPropertyEvent *)&event;
XtInputMask mask = XtAppPending(app_context);
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)
serverEventProc(xterm_dpy, &event);
}
serverEventProc(xterm_dpy, &event);
}
#endif
XtDispatchEvent(&event);
XtDispatchEvent(&event);
}
else
{
/* There is something else than an event to process. */
XtAppProcessEvent(app_context, mask);
}
}
}
+2
View File
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
666,
/**/
665,
/**/