2009/10/2 Duane Tarr <tar...@comcast.net>:
> Thanks for the reply, Thomas.

Can you please make sure you don't cull the Cc list -- which means
ensuring you *reply* on-list in the future, please?   I am actually
adding in fvwm-workers so I don't lose track of this email.

> I tried what you said for 2.5.27, but the Vim window still runs off the
> bottom edge.

I've been able to reproduce this with your config.  The mathematics
involved in calculating the offsets is quite complicated, and I won't
claim I fully understand the logic.  However, please would you get the
CVS version of FVWM and apply the patch attached along with this
email?

>From my limited testing, this *seems* to work, but I would like it
tested more before I think about committing it to CVS.

-- Thomas Adam
Index: fvwm/placement.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/placement.c,v
retrieving revision 1.170
diff -u -r1.170 placement.c
--- fvwm/placement.c    19 Feb 2009 21:06:02 -0000      1.170
+++ fvwm/placement.c    3 Oct 2009 01:54:51 -0000
@@ -867,15 +867,21 @@
                ret_p->x = __pl_minoverlap_get_next_x(arg);
                ret_p->y = arg->place_g.y;
        }
-       if (ret_p->x + arg->place_g.width > arg->page_p2.x)
+       if (ret_p->x + arg->place_g.width >= arg->page_p2.x)
        {
                /* out of room in x direction. Try next y. Reset x.*/
                ret_p->x = arg->page_p1.x;
                ret_p->y = __pl_minoverlap_get_next_y(arg);
        }
-       if (ret_p->y + arg->place_g.height > arg->page_p2.y)
+       if (ret_p->y + arg->place_g.height >= arg->page_p2.y)
        {
                /* PageBottom */
+               /* TA:  20091003:  Ensure we just set the y-coordinate back to
+                * where it was meant to be -- effectively *try* and keep it
+                * on screen, but there's no guarantee of that here because of
+                * how best_policy is then checked for!
+                */
+               ret_p->y = arg->place_g.y;
                return PL_LOOP_END;
        }
 

Reply via email to