- switch (config_dock_pos) {
- case DockPos_Floating:
- STRUT_SET(dock_strut, 0, 0, 0, 0);
- break;
- case DockPos_TopLeft:
- if (config_dock_horz)
- STRUT_SET(dock_strut, 0, strh, 0, 0);
- else
- STRUT_SET(dock_strut, strw, 0, 0, 0);
- break;
- case DockPos_Top:
- STRUT_SET(dock_strut, 0, strh, 0, 0);
- break;
- case DockPos_TopRight:
- if (config_dock_horz)
- STRUT_SET(dock_strut, 0, strh, 0, 0);
- else
- STRUT_SET(dock_strut, 0, 0, strw, 0);
- break;
- case DockPos_Left:
- STRUT_SET(dock_strut, strw, 0, 0, 0);
- break;
- case DockPos_Right:
- STRUT_SET(dock_strut, 0, 0, strw, 0);
- break;
- case DockPos_BottomLeft:
- if (config_dock_horz)
- STRUT_SET(dock_strut, 0, 0, 0, strh);
- else
- STRUT_SET(dock_strut, strw, 0, 0, 0);
- break;
- case DockPos_Bottom:
- STRUT_SET(dock_strut, 0, 0, 0, strh);
- break;
- case DockPos_BottomRight:
- if (config_dock_horz)
- STRUT_SET(dock_strut, 0, 0, 0, strh);
- else
- STRUT_SET(dock_strut, 0, 0, strw, 0);
- break;
+ if (config_dock_floating) {
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0);
+ } else {
+ switch (config_dock_pos) {
+ case OB_DIRECTION_NORTHWEST:
+ switch (config_dock_orient) {
+ case OB_ORIENTATION_HORZ:
+ STRUT_PARTIAL_SET(dock_strut, 0, strh, 0, 0,
+ 0, 0, dock->x, dock->x + dock->w - 1,
+ 0, 0, 0, 0);
+ break;
+ case OB_ORIENTATION_VERT:
+ STRUT_PARTIAL_SET(dock_strut, strw, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1,
+ 0, 0, 0, 0, 0, 0);
+ break;
+ }
+ break;
+ case OB_DIRECTION_NORTH:
+ STRUT_PARTIAL_SET(dock_strut, 0, strh, 0, 0,
+ dock->x, dock->x + dock->w - 1,
+ 0, 0, 0, 0, 0, 0);
+ break;
+ case OB_DIRECTION_NORTHEAST:
+ switch (config_dock_orient) {
+ case OB_ORIENTATION_HORZ:
+ STRUT_PARTIAL_SET(dock_strut, 0, strh, 0, 0,
+ 0, 0, dock->x, dock->x + dock->w -1,
+ 0, 0, 0, 0);
+ break;
+ case OB_ORIENTATION_VERT:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, strw, 0,
+ 0, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1, 0, 0);
+ break;
+ }
+ break;
+ case OB_DIRECTION_WEST:
+ STRUT_PARTIAL_SET(dock_strut, strw, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1,
+ 0, 0, 0, 0, 0, 0);
+ break;
+ case OB_DIRECTION_EAST:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, strw, 0,
+ 0, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1, 0, 0);
+ break;
+ case OB_DIRECTION_SOUTHWEST:
+ switch (config_dock_orient) {
+ case OB_ORIENTATION_HORZ:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, strh,
+ 0, 0, 0, 0, 0, 0,
+ dock->x, dock->x + dock->w - 1);
+ break;
+ case OB_ORIENTATION_VERT:
+ STRUT_PARTIAL_SET(dock_strut, strw, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1,
+ 0, 0, 0, 0, 0, 0);
+ break;
+ }
+ break;
+ case OB_DIRECTION_SOUTH:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, strh,
+ 0, 0, 0, 0, 0, 0,
+ dock->x, dock->x + dock->w - 1);
+ break;
+ case OB_DIRECTION_SOUTHEAST:
+ switch (config_dock_orient) {
+ case OB_ORIENTATION_HORZ:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, strh,
+ 0, 0, 0, 0, 0, 0,
+ dock->x, dock->x + dock->w - 1);
+ break;
+ case OB_ORIENTATION_VERT:
+ STRUT_PARTIAL_SET(dock_strut, 0, 0, strw, 0,
+ 0, 0, 0, 0,
+ dock->y, dock->y + dock->h - 1, 0, 0);
+ break;
+ }
+ break;
+ }