Hi All,
        I tracked down an endless loop with FvwmIconMan caused by

*FvwmIconMan: *Action Select SendCommand FlipFocus
*FvwmEvent: new_page my_geom_record_all

my_geom_record_all has a "PipeRead "bash -c ' echo AddToFunc...'" in and I think fvwm has recently started to grab the pointer with PipeRead.

The loop starts when you move the pointer to a button in FvwmIconMan. A FlipFocus is performed which results in an M_NEW_PAGE -> FvwmEvent -> my_geom_record_all -> PipeRead -> grab -> leave/eneter event to FvwmIconMan -> FlipFocus.

I think it's the PipeRead but I'm not sure, anyway a sensible fix is to not send an M_NEW_PAGE if the page hasn't changed and the attached patch is very simple. Is there any reason to send M_NEW_PAGE when the page doesn't change?

Cheers,
Tim.

Index: fvwm/virtual.c
===================================================================
RCS file: /u/phippst/share/cvsroot/fvwm/fvwm/virtual.c,v
retrieving revision 1.26
diff -u -r1.26 virtual.c
--- fvwm/virtual.c      2002/03/13 13:42:59     1.26
+++ fvwm/virtual.c      2002/03/15 13:52:19
@@ -991,11 +991,11 @@
   }
   Scr.Vx = newx;
   Scr.Vy = newy;
-  BroadcastPacket(
-    M_NEW_PAGE, 5, Scr.Vx, Scr.Vy, Scr.CurrentDesk, Scr.VxMax, Scr.VyMax);
 
   if (deltax || deltay)
   {
+    BroadcastPacket(
+      M_NEW_PAGE, 5, Scr.Vx, Scr.Vy, Scr.CurrentDesk, Scr.VxMax, Scr.VyMax);
 
     /*
      * RBW - 11/13/1998         - new:  chase the chain bidirectionally, all 
at once!

Reply via email to