Merge branch 'revert-fullscreen'

This commit is contained in:
Michael Stapelberg 2013-08-27 20:23:00 +02:00
commit bbc30cf142
3 changed files with 9 additions and 24 deletions

View File

@ -93,12 +93,8 @@ void x_push_changes(Con *con);
* Raises the specified container in the internal stack of X windows. The * Raises the specified container in the internal stack of X windows. The
* next call to x_push_changes() will make the change visible in X11. * next call to x_push_changes() will make the change visible in X11.
* *
* If above_all is true, the X11 window will be raised to the top
* of the stack. This should only be used for precisely one fullscreen
* window per output.
*
*/ */
void x_raise_con(Con *con, bool above_all); void x_raise_con(Con *con);
/** /**
* Sets the WM_NAME property (so, no UTF8, but used only for debugging anyways) * Sets the WM_NAME property (so, no UTF8, but used only for debugging anyways)

View File

@ -70,7 +70,7 @@ static void render_l_output(Con *con) {
Con *fullscreen = con_get_fullscreen_con(ws, CF_OUTPUT); Con *fullscreen = con_get_fullscreen_con(ws, CF_OUTPUT);
if (fullscreen) { if (fullscreen) {
fullscreen->rect = con->rect; fullscreen->rect = con->rect;
x_raise_con(fullscreen, true); x_raise_con(fullscreen);
render_con(fullscreen, true); render_con(fullscreen, true);
return; return;
} }
@ -110,7 +110,7 @@ static void render_l_output(Con *con) {
DLOG("child at (%d, %d) with (%d x %d)\n", DLOG("child at (%d, %d) with (%d x %d)\n",
child->rect.x, child->rect.y, child->rect.width, child->rect.height); child->rect.x, child->rect.y, child->rect.width, child->rect.height);
x_raise_con(child, false); x_raise_con(child);
render_con(child, false); render_con(child, false);
} }
} }
@ -208,7 +208,7 @@ void render_con(Con *con, bool render_fullscreen) {
} }
if (fullscreen) { if (fullscreen) {
fullscreen->rect = rect; fullscreen->rect = rect;
x_raise_con(fullscreen, false); x_raise_con(fullscreen);
render_con(fullscreen, true); render_con(fullscreen, true);
return; return;
} }
@ -299,7 +299,7 @@ void render_con(Con *con, bool render_fullscreen) {
} }
DLOG("floating child at (%d,%d) with %d x %d\n", DLOG("floating child at (%d,%d) with %d x %d\n",
child->rect.x, child->rect.y, child->rect.width, child->rect.height); child->rect.x, child->rect.y, child->rect.width, child->rect.height);
x_raise_con(child, false); x_raise_con(child);
render_con(child, false); render_con(child, false);
} }
} }
@ -408,7 +408,7 @@ void render_con(Con *con, bool render_fullscreen) {
DLOG("child at (%d, %d) with (%d x %d)\n", DLOG("child at (%d, %d) with (%d x %d)\n",
child->rect.x, child->rect.y, child->rect.width, child->rect.height); child->rect.x, child->rect.y, child->rect.width, child->rect.height);
x_raise_con(child, false); x_raise_con(child);
render_con(child, false); render_con(child, false);
i++; i++;
} }
@ -416,7 +416,7 @@ void render_con(Con *con, bool render_fullscreen) {
/* in a stacking or tabbed container, we ensure the focused client is raised */ /* in a stacking or tabbed container, we ensure the focused client is raised */
if (con->layout == L_STACKED || con->layout == L_TABBED) { if (con->layout == L_STACKED || con->layout == L_TABBED) {
TAILQ_FOREACH_REVERSE(child, &(con->focus_head), focus_head, focused) TAILQ_FOREACH_REVERSE(child, &(con->focus_head), focus_head, focused)
x_raise_con(child, false); x_raise_con(child);
if ((child = TAILQ_FIRST(&(con->focus_head)))) { if ((child = TAILQ_FIRST(&(con->focus_head)))) {
/* By rendering the stacked container again, we handle the case /* By rendering the stacked container again, we handle the case
* that we have a non-leaf-container inside the stack. In that * that we have a non-leaf-container inside the stack. In that
@ -430,7 +430,7 @@ void render_con(Con *con, bool render_fullscreen) {
* top of every stack window. That way, when a new window is opened in * top of every stack window. That way, when a new window is opened in
* the stack, the old window will not obscure part of the decoration * the stack, the old window will not obscure part of the decoration
* (its unmapped afterwards). */ * (its unmapped afterwards). */
x_raise_con(con, false); x_raise_con(con);
} }
} }
} }

13
src/x.c
View File

@ -36,7 +36,6 @@ typedef struct con_state {
bool mapped; bool mapped;
bool unmap_now; bool unmap_now;
bool child_mapped; bool child_mapped;
bool above_all;
/** The con for which this state is. */ /** The con for which this state is. */
Con *con; Con *con;
@ -900,10 +899,6 @@ void x_push_changes(Con *con) {
xcb_configure_window(conn, prev->id, mask, values); xcb_configure_window(conn, prev->id, mask, values);
} }
if (state->above_all) {
DLOG("above all: 0x%08x\n", state->id);
xcb_configure_window(conn, state->id, XCB_CONFIG_WINDOW_STACK_MODE, (uint32_t[]){ XCB_STACK_MODE_ABOVE });
}
state->initial = false; state->initial = false;
} }
@ -1029,18 +1024,12 @@ void x_push_changes(Con *con) {
* Raises the specified container in the internal stack of X windows. The * Raises the specified container in the internal stack of X windows. The
* next call to x_push_changes() will make the change visible in X11. * next call to x_push_changes() will make the change visible in X11.
* *
* If above_all is true, the X11 window will be raised to the top
* of the stack. This should only be used for precisely one fullscreen
* window per output.
*
*/ */
void x_raise_con(Con *con, bool above_all) { void x_raise_con(Con *con) {
con_state *state; con_state *state;
state = state_for_frame(con->frame); state = state_for_frame(con->frame);
//DLOG("raising in new stack: %p / %s / %s / xid %08x\n", con, con->name, con->window ? con->window->name_json : "", state->id); //DLOG("raising in new stack: %p / %s / %s / xid %08x\n", con, con->name, con->window ? con->window->name_json : "", state->id);
state->above_all = above_all;
CIRCLEQ_REMOVE(&state_head, state, state); CIRCLEQ_REMOVE(&state_head, state, state);
CIRCLEQ_INSERT_HEAD(&state_head, state, state); CIRCLEQ_INSERT_HEAD(&state_head, state, state);
} }