From 89076ea7cf08fbc1d9dfc81b31a7da689bb9db34 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Fri, 8 May 2009 23:22:40 +0200 Subject: [PATCH] =?UTF-8?q?Bugfix:=20Don=E2=80=99t=20raise=20clients=20in?= =?UTF-8?q?=20fullscreen=20mode,=20send=20correct=20position=20to=20client?= =?UTF-8?q?s=20in=20fullscreen=20mode=20(Thanks=20ch3ka,=20mist)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes #38 which only happened for clients which actively tried to reconfigure themselves. --- src/handlers.c | 10 ++++++++++ src/util.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/handlers.c b/src/handlers.c index 61d33135..b16bb7c9 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -590,6 +590,16 @@ int handle_configure_request(void *prophs, xcb_connection_t *conn, xcb_configure return 1; } + if (client->fullscreen) { + LOG("Client is in fullscreen mode\n"); + + Rect child_rect = client->container->workspace->rect; + child_rect.x = child_rect.y = 0; + fake_configure_notify(conn, child_rect, client->child); + + return 1; + } + fake_absolute_configure_notify(conn, client); return 1; diff --git a/src/util.c b/src/util.c index 2ac0beb5..d4203261 100644 --- a/src/util.c +++ b/src/util.c @@ -297,7 +297,7 @@ void set_focus(xcb_connection_t *conn, Client *client, bool set_anyways) { Client *last_focused = get_last_focused_client(conn, client->container, NULL); /* In stacking containers, raise the client in respect to the one which was focused before */ - if (client->container->mode == MODE_STACK) { + if (client->container->mode == MODE_STACK && client->container->workspace->fullscreen_client == NULL) { /* We need to get the client again, this time excluding the current client, because * we might have just gone into stacking mode and need to raise */ Client *last_focused = get_last_focused_client(conn, client->container, client);