diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-23 15:11:56 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-23 15:11:56 +0000 |
| commit | 055cef6c5ddae81fe8976ad83cfa4d60248c0f49 (patch) | |
| tree | 81572a2848617eb85bc8eca3e61cc124d906a51b /openbox/action.c | |
| parent | c15da849dd28565aa8ce19569ec1280961eb605d (diff) | |
add the growtoedge action
Diffstat (limited to 'openbox/action.c')
| -rw-r--r-- | openbox/action.c | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/openbox/action.c b/openbox/action.c index d0953cc1..04a2f9d2 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -146,68 +146,4 @@ void action_shadelower(union ActionData *data) void action_growtoedge(union ActionData *data) { - gint x, y, width, height, dest; - ObClient *c = data->diraction.any.c; - Rect *a; - - a = screen_area(c->desktop, SCREEN_AREA_ALL_MONITORS, &c->frame->area); - x = c->frame->area.x; - y = c->frame->area.y; - /* get the unshaded frame's dimensions..if it is shaded */ - width = c->area.width + c->frame->size.left + c->frame->size.right; - height = c->area.height + c->frame->size.top + c->frame->size.bottom; - - switch(data->diraction.direction) { - case OB_DIRECTION_NORTH: - if (c->shaded) break; /* don't allow vertical resize if shaded */ - - dest = client_directional_edge_search(c, OB_DIRECTION_NORTH, FALSE); - if (a->y == y) - height = height / 2; - else { - height = c->frame->area.y + height - dest; - y = dest; - } - break; - case OB_DIRECTION_WEST: - dest = client_directional_edge_search(c, OB_DIRECTION_WEST, FALSE); - if (a->x == x) - width = width / 2; - else { - width = c->frame->area.x + width - dest; - x = dest; - } - break; - case OB_DIRECTION_SOUTH: - if (c->shaded) break; /* don't allow vertical resize if shaded */ - - dest = client_directional_edge_search(c, OB_DIRECTION_SOUTH, FALSE); - if (a->y + a->height == y + c->frame->area.height) { - height = c->frame->area.height / 2; - y = a->y + a->height - height; - } else - height = dest - c->frame->area.y; - y += (height - c->frame->area.height) % c->size_inc.height; - height -= (height - c->frame->area.height) % c->size_inc.height; - break; - case OB_DIRECTION_EAST: - dest = client_directional_edge_search(c, OB_DIRECTION_EAST, FALSE); - if (a->x + a->width == x + c->frame->area.width) { - width = c->frame->area.width / 2; - x = a->x + a->width - width; - } else - width = dest - c->frame->area.x; - x += (width - c->frame->area.width) % c->size_inc.width; - width -= (width - c->frame->area.width) % c->size_inc.width; - break; - default: - g_assert_not_reached(); - } - width -= c->frame->size.left + c->frame->size.right; - height -= c->frame->size.top + c->frame->size.bottom; - frame_frame_gravity(c->frame, &x, &y, width, height); - client_action_start(data); - client_move_resize(c, x, y, width, height); - client_action_end(data, FALSE); - g_free(a); } |
