sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 5354988317f07e436f23c4022992b09623ef1322
parent f6c3682c05bce05f00b13b8f469b52923ecd8ddb
Author: Ryan Dwyer <ryandwyer1@gmail.com>
Date:   Tue, 22 May 2018 08:43:00 +1000

Implement clicking stacked title bars

Diffstat:
Msway/tree/container.c | 19+++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/sway/tree/container.c b/sway/tree/container.c @@ -533,8 +533,23 @@ static struct sway_container *container_at_tabbed(struct sway_container *parent, static struct sway_container *container_at_stacked( struct sway_container *parent, double ox, double oy, struct wlr_surface **surface, double *sx, double *sy) { - // TODO - return NULL; + if (oy < parent->y || oy > parent->y + parent->height) { + return NULL; + } + struct sway_seat *seat = input_manager_current_seat(input_manager); + + // Title bars + int title_height = container_titlebar_height(); + int child_index = (oy - parent->y) / title_height; + if (child_index < parent->children->length) { + struct sway_container *child = parent->children->items[child_index]; + return seat_get_focus_inactive(seat, child); + } + + // Surfaces + struct sway_container *current = seat_get_active_child(seat, parent); + + return container_at(current, ox, oy, surface, sx, sy); } /**