To Apply, try "patch < events.c.patch" in the directory with the xdvi sources.
Works for xdvi version 1.8.

*** events.c	Tue Sep 13 16:54:18 1994
--- events.c	Thu Sep 22 10:34:43 1994
***************
*** 1452,1457 ****
--- 1452,1465 ----
  	windowrec->max_x = windowrec->max_y = 0;
  }
  
+ static void
+ handle_sigusr1() {
+       --dvi_time;     /* then it will notice a change */
+       canit = True;
+       redraw(&mane);   /* Send an event to wake xdvi up */
+       (void) signal(SIGUSR1, handle_sigusr1);
+ }
+ 
  #if	HAS_SIGIO
  /* ARGSUSED */
  static	void
***************
*** 1490,1495 ****
--- 1498,1504 ----
  #if	HAS_SIGIO
  	    enable_intr();
  #endif
+             (void) signal(SIGUSR1, handle_sigusr1);
  #ifdef	__convex__
  	    /* convex C turns off optimization for the entire function
  	       if setjmp return value is discarded.*/