From 2df1fb8ac825c77b2744812d12dfcdc762bc7d75 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sun, 14 Mar 2010 12:59:45 +0100 Subject: [PATCH] Implement disabling the internal workspace bar --- src/layout.c | 8 +++++--- src/randr.c | 22 ++++++++++++---------- src/workspace.c | 3 ++- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/layout.c b/src/layout.c index 04f9cf60..202f5601 100644 --- a/src/layout.c +++ b/src/layout.c @@ -3,7 +3,7 @@ * * i3 - an improved dynamic tiling window manager * - * © 2009 Michael Stapelberg and contributors + * © 2009-2010 Michael Stapelberg and contributors * * See file LICENSE for license information. * @@ -682,7 +682,8 @@ void render_workspace(xcb_connection_t *conn, Output *output, Workspace *r_ws) { height -= client->desired_height; /* Space for the internal bar */ - height -= (font->height + 6); + if (!config.disable_workspace_bar) + height -= (font->height + 6); int xoffset[r_ws->rows]; int yoffset[r_ws->cols]; @@ -739,7 +740,8 @@ void render_workspace(xcb_connection_t *conn, Output *output, Workspace *r_ws) { ignore_enter_notify_forall(conn, r_ws, false); render_bars(conn, r_ws, width, &height); - render_internal_bar(conn, r_ws, width, font->height + 6); + if (!config.disable_workspace_bar) + render_internal_bar(conn, r_ws, width, font->height + 6); } /* diff --git a/src/randr.c b/src/randr.c index 7cf9d514..9ef45fd0 100644 --- a/src/randr.c +++ b/src/randr.c @@ -173,16 +173,18 @@ void initialize_output(xcb_connection_t *conn, Output *output, Workspace *worksp /* Map clients on the workspace, if any */ workspace_map_clients(conn, workspace); - /* Create a xoutput for each output */ - Rect bar_rect = {output->rect.x, - output->rect.y + output->rect.height - (font->height + 6), - output->rect.x + output->rect.width, - font->height + 6}; - uint32_t mask = XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK; - uint32_t values[] = {1, XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS}; - output->bar = create_window(conn, bar_rect, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_CURSOR_LEFT_PTR, true, mask, values); - output->bargc = xcb_generate_id(conn); - xcb_create_gc(conn, output->bargc, output->bar, 0, 0); + /* Create a bar window on each output */ + if (!config.disable_workspace_bar) { + Rect bar_rect = {output->rect.x, + output->rect.y + output->rect.height - (font->height + 6), + output->rect.x + output->rect.width, + font->height + 6}; + uint32_t mask = XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK; + uint32_t values[] = {1, XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS}; + output->bar = create_window(conn, bar_rect, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_CURSOR_LEFT_PTR, true, mask, values); + output->bargc = xcb_generate_id(conn); + xcb_create_gc(conn, output->bargc, output->bar, 0, 0); + } SLIST_INIT(&(output->dock_clients)); diff --git a/src/workspace.c b/src/workspace.c index 3b8c6ba4..8d762729 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -460,7 +460,8 @@ int workspace_height(Workspace *ws) { height -= client->desired_height; /* Space for the internal bar */ - height -= (font->height + 6); + if (!config.disable_workspace_bar) + height -= (font->height + 6); return height; } -- 2.39.5