Remove window borders whenever possible

This commit is contained in:
Bastien Dejean 2012-09-28 22:39:32 +02:00
parent 289d1f5aaa
commit 0b68e16fc8
7 changed files with 13 additions and 15 deletions

View file

@ -268,10 +268,6 @@ void set_setting(char *name, char *value)
} else if (strcmp(name, "urgent_border_color") == 0) {
strcpy(urgent_border_color, value);
urgent_border_color_pxl = get_color(urgent_border_color);
} else if (strcmp(name, "adaptive_window_border") == 0) {
bool b;
if (parse_bool(value, &b))
adaptive_window_border = b;
} else if (strcmp(name, "wm_name") == 0) {
strcpy(wm_name, value);
ewmh_update_wm_name();
@ -322,8 +318,6 @@ void get_setting(char *name, char* rsp)
sprintf(rsp, "%s (%06X)\n", urgent_border_color, urgent_border_color_pxl);
else if (strcmp(name, "wm_name") == 0)
sprintf(rsp, "%s\n", wm_name);
else if (strcmp(name, "adaptive_window_border") == 0)
sprintf(rsp, "%s\n", BOOLSTR(adaptive_window_border));
}

View file

@ -51,7 +51,6 @@ void load_settings(void)
urgent_border_color_pxl = get_color(urgent_border_color);
strcpy(wm_name, WM_NAME);
adaptive_window_border = ADAPTIVE_WINDOW_BORDER;
inner_border_width = INNER_BORDER_WIDTH;
main_border_width = MAIN_BORDER_WIDTH;

View file

@ -20,8 +20,6 @@
#define LEFT_PADDING 0
#define RIGHT_PADDING 0
#define ADAPTIVE_WINDOW_BORDER true
#define ACTIVE_BORDER_COLOR "#7D7F8A"
#define NORMAL_BORDER_COLOR "#3F3E3B"
#define INNER_BORDER_COLOR "#32312E"
@ -62,8 +60,6 @@ int bottom_padding;
int left_padding;
int right_padding;
bool adaptive_window_border;
char wm_name[MAXLEN];
void load_settings(void);

10
tree.c
View file

@ -261,13 +261,19 @@ void apply_layout(desktop_t *d, node_t *n, xcb_rectangle_t rect)
if (is_leaf(n)) {
if (n->client->fullscreen)
return;
if (n == d->root || (d->layout == LAYOUT_MONOCLE && !is_floating(n->client)))
n->client->border_width = 0;
else
n->client->border_width = border_width;
xcb_rectangle_t r;
if (is_tiled(n->client)) {
if (d->layout == LAYOUT_TILED)
r = rect;
else if (d->layout == LAYOUT_MONOCLE)
r = root_rect;
int bleed = window_gap + 2 * border_width;
int bleed = window_gap + 2 * n->client->border_width;
r.width = (bleed < r.width ? r.width - bleed : 1);
r.height = (bleed < r.height ? r.height - bleed : 1);
n->client->tiled_rectangle = r;
@ -276,7 +282,7 @@ void apply_layout(desktop_t *d, node_t *n, xcb_rectangle_t rect)
}
window_move_resize(n->client->window, r.x, r.y, r.width, r.height);
window_border_width(n->client->window, border_width);
window_border_width(n->client->window, n->client->border_width);
window_draw_border(n, n == d->focus);
if (d->layout == LAYOUT_MONOCLE && n == d->focus)

View file

@ -2,6 +2,7 @@
#include <string.h>
#include <xcb/xcb.h>
#include <xcb/xcb_event.h>
#include "settings.h"
#include "types.h"
node_t *make_node(void)
@ -29,6 +30,7 @@ client_t *make_client(xcb_window_t win)
{
client_t *c = malloc(sizeof(client_t));
strcpy(c->class_name, MISSING_VALUE);
c->border_width = border_width;
c->window = win;
c->floating = c->transient = c->fullscreen = c->locked = c->urgent = false;
return c;

View file

@ -70,6 +70,7 @@ typedef enum {
typedef struct {
xcb_window_t window;
char class_name[MAXLEN];
unsigned int border_width;
bool floating;
bool transient; /* transient window are always floating */
bool fullscreen;

View file

@ -43,7 +43,7 @@ void window_draw_border(node_t *n, bool focused)
if (n == NULL)
return;
if (border_width < 1)
if (border_width < 1 || n->client->border_width < 1)
return;
xcb_window_t win = n->client->window;
@ -188,7 +188,7 @@ void toggle_fullscreen(client_t *c)
rect = c->floating_rectangle;
else
rect = c->tiled_rectangle;
window_border_width(c->window, border_width);
window_border_width(c->window, c->border_width);
window_move_resize(c->window, rect.x, rect.y, rect.width, rect.height);
} else {
c->fullscreen = true;