i3bar: also use the position option when in 'hide' mode

This commit is contained in:
Michael Stapelberg 2011-10-21 19:59:25 +01:00
parent 0f2642a9c9
commit a3b7ba15ed
3 changed files with 13 additions and 11 deletions

View File

@ -4,14 +4,14 @@
#include "common.h" #include "common.h"
typedef enum { typedef enum {
DOCKPOS_NONE = 0, POS_NONE = 0,
DOCKPOS_TOP, POS_TOP,
DOCKPOS_BOT POS_BOT
} dockpos_t; } position_t;
typedef struct config_t { typedef struct config_t {
int hide_on_modifier; int hide_on_modifier;
dockpos_t dockpos; position_t position;
int verbose; int verbose;
struct xcb_color_strings_t colors; struct xcb_color_strings_t colors;
int disable_ws; int disable_ws;

View File

@ -63,7 +63,7 @@ static int config_string_cb(void *params_, const unsigned char *val, unsigned in
if (!strcmp(cur_key, "position")) { if (!strcmp(cur_key, "position")) {
DLOG("position = %.*s\n", len, val); DLOG("position = %.*s\n", len, val);
config.dockpos = (len == 3 && !strncmp((const char*)val, "top", strlen("top")) ? DOCKPOS_TOP : DOCKPOS_BOT); config.position = (len == 3 && !strncmp((const char*)val, "top", strlen("top")) ? POS_TOP : POS_BOT);
return 1; return 1;
} }

View File

@ -281,7 +281,9 @@ void unhide_bars() {
XCB_CONFIG_WINDOW_HEIGHT | XCB_CONFIG_WINDOW_HEIGHT |
XCB_CONFIG_WINDOW_STACK_MODE; XCB_CONFIG_WINDOW_STACK_MODE;
values[0] = walk->rect.x; values[0] = walk->rect.x;
values[1] = walk->rect.y + walk->rect.h - font_height - 6; if (config.position == POS_TOP)
values[1] = walk->rect.y;
else values[1] = walk->rect.y + walk->rect.h - font_height - 6;
values[2] = walk->rect.w; values[2] = walk->rect.w;
values[3] = font_height + 6; values[3] = font_height + 6;
values[4] = XCB_STACK_MODE_ABOVE; values[4] = XCB_STACK_MODE_ABOVE;
@ -1305,15 +1307,15 @@ void reconfig_windows() {
uint32_t bottom_start_x; uint32_t bottom_start_x;
uint32_t bottom_end_x; uint32_t bottom_end_x;
} __attribute__((__packed__)) strut_partial = {0,}; } __attribute__((__packed__)) strut_partial = {0,};
switch (config.dockpos) { switch (config.position) {
case DOCKPOS_NONE: case POS_NONE:
break; break;
case DOCKPOS_TOP: case POS_TOP:
strut_partial.top = font_height + 6; strut_partial.top = font_height + 6;
strut_partial.top_start_x = walk->rect.x; strut_partial.top_start_x = walk->rect.x;
strut_partial.top_end_x = walk->rect.x + walk->rect.w; strut_partial.top_end_x = walk->rect.x + walk->rect.w;
break; break;
case DOCKPOS_BOT: case POS_BOT:
strut_partial.bottom = font_height + 6; strut_partial.bottom = font_height + 6;
strut_partial.bottom_start_x = walk->rect.x; strut_partial.bottom_start_x = walk->rect.x;
strut_partial.bottom_end_x = walk->rect.x + walk->rect.w; strut_partial.bottom_end_x = walk->rect.x + walk->rect.w;