Bugfix: Insert windows at correct position/set focus correctly when moving between containers
This commit is contained in:
parent
3cc850aea5
commit
c27c7fc020
|
@ -31,6 +31,9 @@ i3-wm (3.a-bf1-1) unstable; urgency=low
|
||||||
* Bugfix: Correctly restore focus when leaving fullscreen mode
|
* Bugfix: Correctly restore focus when leaving fullscreen mode
|
||||||
* Bugfix: Re-distribute free space when closing customly resized containers,
|
* Bugfix: Re-distribute free space when closing customly resized containers,
|
||||||
re-evaluate for other 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.
|
* Implement scrolling on stack windows and on the bottom bar.
|
||||||
* Create i3-wm-dbg with debug symbols
|
* Create i3-wm-dbg with debug symbols
|
||||||
* Don't rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4.
|
* Don't rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4.
|
||||||
|
|
|
@ -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 it from the old container and put it into the new one */
|
||||||
remove_client_from_container(conn, current_client, container);
|
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);
|
SLIST_INSERT_HEAD(&(new->workspace->focus_stack), current_client, focus_clients);
|
||||||
|
|
||||||
/* Update data structures */
|
/* Update data structures */
|
||||||
|
|
|
@ -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("handle_configure_event for window %08x\n", event->window);
|
||||||
LOG("event->type = %d, \n", event->response_type);
|
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);
|
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);
|
add_ignore_event(event->sequence);
|
||||||
|
|
||||||
if (event->event == root) {
|
if (event->event == root) {
|
||||||
|
|
Loading…
Reference in New Issue