From b93413ca49c59638e3d0c4854665ca4907a8a15c Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sat, 17 Apr 2010 17:43:50 +0200 Subject: [PATCH] remove old fullscreen code --- include/client.h | 28 --------- src/client.c | 149 ----------------------------------------------- 2 files changed, 177 deletions(-) diff --git a/include/client.h b/include/client.h index 8f97eb44..627cab84 100644 --- a/include/client.h +++ b/include/client.h @@ -46,34 +46,6 @@ void client_kill(xcb_connection_t *conn, Client *window); bool client_matches_class_name(Client *client, char *to_class, char *to_title, char *to_title_ucs, int to_title_ucs_len); -/** - * Enters fullscreen mode for the given client. This is called by toggle_fullscreen - * and when moving a fullscreen client to another screen. - * - */ -void client_enter_fullscreen(xcb_connection_t *conn, Client *client, bool global); - -/** - * Leaves fullscreen mode for the given client. This is called by toggle_fullscreen. - * - */ -void client_leave_fullscreen(xcb_connection_t *conn, Client *client); - -/** - * Toggles fullscreen mode for the given client. It updates the data - * structures and reconfigures (= resizes/moves) the client and its frame to - * the full size of the screen. When leaving fullscreen, re-rendering the - * layout is forced. - * - */ -void client_toggle_fullscreen(xcb_connection_t *conn, Client *client); - -/** - * Like client_toggle_fullscreen(), but putting it in global fullscreen-mode. - * - */ -void client_toggle_fullscreen_global(xcb_connection_t *conn, Client *client); - /** * Sets the position of the given client in the X stack to the highest (tiling * layer is always on the same position, so this doesn’t matter) below the diff --git a/src/client.c b/src/client.c index 9c136ca6..43fcd7b4 100644 --- a/src/client.c +++ b/src/client.c @@ -148,155 +148,6 @@ bool client_matches_class_name(Client *client, char *to_class, char *to_title, return true; } -/* - * Enters fullscreen mode for the given client. This is called by toggle_fullscreen - * and when moving a fullscreen client to another screen. - * - */ -void client_enter_fullscreen(xcb_connection_t *conn, Client *client, bool global) { - Workspace *workspace; - Output *output; - Rect r; - - if (global) { - TAILQ_FOREACH(output, &outputs, outputs) { - if (!output->active) - continue; - - if (output->current_workspace->fullscreen_client == NULL) - continue; - - LOG("Not entering global fullscreen mode, there already " - "is a fullscreen client on output %s.\n", output->name); - return; - } - - r = (Rect) { UINT_MAX, UINT_MAX, 0,0 }; - Output *output; - - /* Set fullscreen_client for each active workspace. - * Expand the rectangle to contain all outputs. */ - TAILQ_FOREACH(output, &outputs, outputs) { - if (!output->active) - continue; - - output->current_workspace->fullscreen_client = client; - - /* Temporarily abuse width/heigth as coordinates of the lower right corner */ - if (r.x > output->rect.x) - r.x = output->rect.x; - if (r.y > output->rect.y) - r.y = output->rect.y; - if (r.x + r.width < output->rect.x + output->rect.width) - r.width = output->rect.x + output->rect.width; - if (r.y + r.height < output->rect.y + output->rect.height) - r.height = output->rect.y + output->rect.height; - } - - /* Putting them back to their original meaning */ - r.height -= r.x; - r.width -= r.y; - - LOG("Entering global fullscreen mode...\n"); - } else { - workspace = client->workspace; - if (workspace->fullscreen_client != NULL && workspace->fullscreen_client != client) { - LOG("Not entering fullscreen mode, there already is a fullscreen client.\n"); - return; - } - - workspace->fullscreen_client = client; - r = workspace->rect; - - LOG("Entering fullscreen mode...\n"); - } - - client->fullscreen = true; - - /* We just entered fullscreen mode, let’s configure the window */ - DLOG("child itself will be at %dx%d with size %dx%d\n", - r.x, r.y, r.width, r.height); - - xcb_set_window_rect(conn, client->frame, r); - - /* Child’s coordinates are relative to the parent (=frame) */ - r.x = 0; - r.y = 0; - xcb_set_window_rect(conn, client->child, r); - - /* Raise the window */ - uint32_t values[] = { XCB_STACK_MODE_ABOVE }; - xcb_configure_window(conn, client->frame, XCB_CONFIG_WINDOW_STACK_MODE, values); - - fake_configure_notify(conn, r, client->child); - - xcb_flush(conn); -} - -/* - * Leaves fullscreen mode for the current client. This is called by toggle_fullscreen. - * - */ -void client_leave_fullscreen(xcb_connection_t *conn, Client *client) { - LOG("leaving fullscreen mode\n"); - client->fullscreen = false; - Workspace *ws; - TAILQ_FOREACH(ws, workspaces, workspaces) - if (ws->fullscreen_client == client) - ws->fullscreen_client = NULL; - - if (client_is_floating(client)) { - /* For floating clients it’s enough if we just reconfigure that window (in fact, - * re-rendering the layout will not update the client.) */ - reposition_client(conn, client); - resize_client(conn, client); - /* redecorate_window flushes */ - redecorate_window(conn, client); - } else { - client_set_below_floating(conn, client); - - /* Because the coordinates of the window haven’t changed, it would not be - re-configured if we don’t set the following flag */ - client->force_reconfigure = true; - /* We left fullscreen mode, redraw the whole layout to ensure enternotify events are disabled */ - render_layout(conn); - } - - xcb_flush(conn); -} - -/* - * Toggles fullscreen mode for the given client. It updates the data structures and - * reconfigures (= resizes/moves) the client and its frame to the full size of the - * screen. When leaving fullscreen, re-rendering the layout is forced. - * - */ -void client_toggle_fullscreen(xcb_connection_t *conn, Client *client) { - /* dock clients cannot enter fullscreen mode */ - assert(!client->dock); - - if (!client->fullscreen) { - client_enter_fullscreen(conn, client, false); - } else { - client_leave_fullscreen(conn, client); - } -} - -/* - * Like client_toggle_fullscreen(), but putting it in global fullscreen-mode. - * - */ -void client_toggle_fullscreen_global(xcb_connection_t *conn, Client *client) { - /* dock clients cannot enter fullscreen mode */ - assert(!client->dock); - - if (!client->fullscreen) { - client_enter_fullscreen(conn, client, true); - } else { - client_leave_fullscreen(conn, client); - } -} - /* * Sets the position of the given client in the X stack to the highest (tiling layer is always * on the same position, so this doesn’t matter) below the first floating client, so that -- 2.39.5