Bugfix: Raise clients only when needed
This commit is contained in:
parent
67fbec2061
commit
43d471b9ab
|
@ -253,11 +253,6 @@ void render_container(xcb_connection_t *connection, Container *container) {
|
||||||
current_client * decoration_height);
|
current_client * decoration_height);
|
||||||
current_client++;
|
current_client++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Raise the focused window */
|
|
||||||
uint32_t values[] = { XCB_STACK_MODE_ABOVE };
|
|
||||||
xcb_configure_window(connection, container->currently_focused->frame,
|
|
||||||
XCB_CONFIG_WINDOW_STACK_MODE, values);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -282,6 +282,9 @@ int main(int argc, char *argv[], char *env[]) {
|
||||||
xcb_window_t root;
|
xcb_window_t root;
|
||||||
xcb_intern_atom_cookie_t atom_cookies[NUM_ATOMS];
|
xcb_intern_atom_cookie_t atom_cookies[NUM_ATOMS];
|
||||||
|
|
||||||
|
if (!isatty(stdout))
|
||||||
|
setbuf(stdout, NULL);
|
||||||
|
|
||||||
application_path = sstrdup(argv[0]);
|
application_path = sstrdup(argv[0]);
|
||||||
|
|
||||||
/* Initialize the table data structures for each workspace */
|
/* Initialize the table data structures for each workspace */
|
||||||
|
|
13
src/util.c
13
src/util.c
|
@ -149,9 +149,13 @@ void set_focus(xcb_connection_t *conn, Client *client) {
|
||||||
decorate_window(conn, client, client->frame, client->titlegc, 0);
|
decorate_window(conn, client, client->frame, client->titlegc, 0);
|
||||||
|
|
||||||
/* If we’re in stacking mode, we render the container to update changes in the title
|
/* If we’re in stacking mode, we render the container to update changes in the title
|
||||||
bars and to raise the focused client */
|
bars and raise the focused client */
|
||||||
if (client->container->mode == MODE_STACK)
|
if (client->container->mode == MODE_STACK) {
|
||||||
render_container(conn, client->container);
|
render_container(conn, client->container);
|
||||||
|
uint32_t values[] = { XCB_STACK_MODE_ABOVE };
|
||||||
|
xcb_configure_window(conn, client->frame,
|
||||||
|
XCB_CONFIG_WINDOW_STACK_MODE, values);
|
||||||
|
}
|
||||||
|
|
||||||
xcb_flush(conn);
|
xcb_flush(conn);
|
||||||
}
|
}
|
||||||
|
@ -189,6 +193,11 @@ void switch_layout_mode(xcb_connection_t *conn, Container *container, int mode)
|
||||||
stack_win->container = container;
|
stack_win->container = container;
|
||||||
|
|
||||||
SLIST_INSERT_HEAD(&stack_wins, stack_win, stack_windows);
|
SLIST_INSERT_HEAD(&stack_wins, stack_win, stack_windows);
|
||||||
|
/* Raise the focused window */
|
||||||
|
values[0] = XCB_STACK_MODE_ABOVE;
|
||||||
|
xcb_configure_window(conn, container->currently_focused->frame,
|
||||||
|
XCB_CONFIG_WINDOW_STACK_MODE, values);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (container->mode == MODE_STACK) {
|
if (container->mode == MODE_STACK) {
|
||||||
/* When going out of stacking mode, we need to close the window */
|
/* When going out of stacking mode, we need to close the window */
|
||||||
|
|
Loading…
Reference in New Issue