Bugfix: Insert windows at correct position/set focus correctly when moving between containers

This commit is contained in:
Michael Stapelberg 2009-05-03 16:24:12 +02:00
parent 3cc850aea5
commit c27c7fc020
3 changed files with 10 additions and 1 deletions

3
debian/changelog vendored
View File

@ -31,6 +31,9 @@ i3-wm (3.a-bf1-1) unstable; urgency=low
* Bugfix: Correctly restore focus when leaving fullscreen mode
* Bugfix: Re-distribute free space when closing customly resized containers,
re-evaluate for other containers
* Bugfix: When moving windows into different containers, insert them at the
correct position.
* Bugfix: Correctly set focus when moving windows into other containers
* Implement scrolling on stack windows and on the bottom bar.
* Create i3-wm-dbg with debug symbols
* Don't rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4.

View File

@ -221,7 +221,10 @@ static void move_current_window(xcb_connection_t *conn, direction_t direction) {
/* Remove it from the old container and put it into the new one */
remove_client_from_container(conn, current_client, container);
CIRCLEQ_INSERT_TAIL(&(new->clients), current_client, clients);
if (new->currently_focused != NULL)
CIRCLEQ_INSERT_AFTER(&(new->clients), new->currently_focused, current_client, clients);
else CIRCLEQ_INSERT_TAIL(&(new->clients), current_client, clients);
SLIST_INSERT_HEAD(&(new->workspace->focus_stack), current_client, focus_clients);
/* Update data structures */

View File

@ -589,6 +589,9 @@ int handle_configure_event(void *prophs, xcb_connection_t *conn, xcb_configure_n
LOG("handle_configure_event for window %08x\n", event->window);
LOG("event->type = %d, \n", event->response_type);
LOG("event->x = %d, ->y = %d, ->width = %d, ->height = %d\n", event->x, event->y, event->width, event->height);
/* We ignore this sequence twice because events for child and frame should be ignored */
add_ignore_event(event->sequence);
add_ignore_event(event->sequence);
if (event->event == root) {