Index: src/constraints.c
===================================================================
RCS file: /cvs/gnome/metacity/src/constraints.c,v
retrieving revision 1.23
diff -p -u -r1.23 constraints.c
--- src/constraints.c	21 Nov 2005 06:00:18 -0000	1.23
+++ src/constraints.c	21 Nov 2005 20:46:11 -0000
@@ -1053,12 +1058,15 @@ constrain_partially_onscreen (MetaWindow
    * Then, the amount that is allowed off is just the window size minus
    * this amount.
    */
+  int top_amount, bottom_amount;
   int horiz_amount = info->current.width  / 4;
   int vert_amount  = info->current.height / 4;
   horiz_amount = CLAMP (horiz_amount, 10, 75);
   vert_amount  = CLAMP (vert_amount,  10, 75);
   horiz_amount = info->current.width - horiz_amount;
   vert_amount  = info->current.height - vert_amount;
+  top_amount = vert_amount;
+  bottom_amount = info->current.height + info->fgeom->bottom_height;
 
   /* Extend the region, have a helper function handle the constraint,
    * then return the region to its original size.
@@ -1066,8 +1074,8 @@ constrain_partially_onscreen (MetaWindow
   meta_rectangle_expand_region (info->usable_screen_region,
                                 horiz_amount,
                                 horiz_amount, 
-                                vert_amount,
-                                vert_amount);
+                                top_amount,
+                                bottom_amount);
   gboolean retval =
     do_screen_and_xinerama_relative_constraints (window, 
                                                  info->usable_screen_region,
@@ -1076,8 +1084,8 @@ constrain_partially_onscreen (MetaWindow
   meta_rectangle_expand_region (info->usable_screen_region,
                                 -horiz_amount,
                                 -horiz_amount, 
-                                -vert_amount,
-                                -vert_amount);
+                                -top_amount,
+                                -bottom_amount);
 
   return retval;
 }
