case BORDER_BOTTOM:
search_direction = D_DOWN;
break;
- default:
- assert(false);
- break;
}
- bool res = resize_find_tiling_participants(&first, &second, search_direction);
+ bool res = resize_find_tiling_participants(&first, &second, search_direction, false);
if (!res) {
LOG("No second container in this direction found.\n");
return false;
event->detail == XCB_BUTTON_SCROLL_LEFT ||
event->detail == XCB_BUTTON_SCROLL_RIGHT)) {
DLOG("Scrolling on a window decoration\n");
- orientation_t orientation = (con->parent->layout == L_STACKED ? VERT : HORIZ);
- /* Focus the currently focused container on the same level that the
- * user scrolled on. e.g. the tabbed decoration contains
- * "urxvt | i3: V[xterm geeqie] | firefox",
- * focus is on the xterm, but the user scrolled on urxvt.
- * The splitv container will be focused. */
+ orientation_t orientation = con_orientation(con->parent);
+ /* Use the focused child of the tabbed / stacked container, not the
+ * container the user scrolled on. */
Con *focused = con->parent;
focused = TAILQ_FIRST(&(focused->focus_head));
- con_focus(focused);
+ con_activate(con_descend_focused(focused));
/* To prevent scrolling from going outside the container (see ticket
* #557), we first check if scrolling is possible at all. */
bool scroll_prev_possible = (TAILQ_PREV(focused, nodes_head, nodes) != NULL);
}
/* 2: focus this con. */
- con_focus(con);
+ con_activate(con);
/* 3: For floating containers, we also want to raise them on click.
* We will skip handling events on floating cons in fullscreen mode */