when a window is shaded, don't include client height in the height

2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): when a window is
	shaded, don't include client height in the height calculation.

	* src/workspace.c (meta_workspace_get_neighbor): apply fix from
	Mads Villadsen for the Up arrow key, #84582
This commit is contained in:
Havoc Pennington 2002-06-12 22:44:25 +00:00 committed by Havoc Pennington
parent d7cac40332
commit 7ff56e67e9
3 changed files with 26 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2002-06-12 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_layout_calc_geometry): when a window is
shaded, don't include client height in the height calculation.
* src/workspace.c (meta_workspace_get_neighbor): apply fix from
Mads Villadsen for the Up arrow key, #84582
2002-06-12 Havoc Pennington <hp@redhat.com> 2002-06-12 Havoc Pennington <hp@redhat.com>
* src/theme.c (meta_frame_style_draw): Draw the buttons right * src/theme.c (meta_frame_style_draw): Draw the buttons right

View File

@ -412,7 +412,8 @@ meta_frame_layout_calc_geometry (const MetaFrameLayout *layout,
&fgeom->right_width); &fgeom->right_width);
width = client_width + fgeom->left_width + fgeom->right_width; width = client_width + fgeom->left_width + fgeom->right_width;
height = client_height + fgeom->top_height + fgeom->bottom_height; height = ((flags & META_FRAME_SHADED) ? client_height : 0) +
fgeom->top_height + fgeom->bottom_height;
fgeom->width = width; fgeom->width = width;
fgeom->height = height; fgeom->height = height;

View File

@ -631,9 +631,22 @@ meta_workspace_get_neighbor (MetaWorkspace *workspace,
case META_MOTION_UP: case META_MOTION_UP:
if (i < cols) if (i < cols)
{ {
i = grid_area - (i % cols) - 1; if (i == 0)
while (i >= num_workspaces) {
i -= cols; /* special case: go to bottom right corner == grid_area - 1 */
i = grid_area - 1;
while (i >= num_workspaces)
/* if we are in a non-existant workspace look up in the column for next workspace */
i -= cols;
}
else
{
/* calculate new workspace based on the bottom left corner == ((rows - 1) * cols) */
i = ((rows - 1) * cols) + (i - 1);
while (i >= num_workspaces)
/* if we are in a non-existant workspace look up in the column for next workspace */
i -= cols;
}
} }
else else
i -= cols; i -= cols;