--- panel-struts.c.orig 2009-01-31 22:21:48.000000000 +0000 +++ panel-struts.c 2009-01-31 22:32:26.000000000 +0000 @@ -294,7 +294,26 @@ case PANEL_ORIENTATION_BOTTOM: if (monitor_y + monitor_height < screen_height) strut_size += screen_height - (monitor_y + monitor_height); - if (!bottommost) strut_size = 0; + if (!bottommost) + { + strut_size = 0; + fprintf(stderr,"BOTTOM HACK! leftmost=%d rightmost=%d monheight=%d monwidth=%d mony=%d size=%d\n", + leftmost, rightmost, monitor_height, monitor_width, monitor_y, + panel_toplevel_get_size(toplevel)); + /* This is a hack for a stack of monitors, if we are a 'bottom' + but not at the bottom most monitor but there is just one wide stack + then convert ourselves into a left strut covering the whole width + but over a restricted y range */ + if (leftmost && rightmost) + { + panel_xutils_set_strut (widget->window, + PANEL_ORIENTATION_LEFT, + monitor_width, + monitor_y+monitor_height-panel_toplevel_get_size(toplevel), + monitor_y+monitor_height-1); + return; + } + } break; case PANEL_ORIENTATION_LEFT: if (leftmost && monitor_x > 0)