i3 / i3/i3

hide_edge_borders may affect split floating containers

Open
#4,424 2 comments 0 reactions 0 assignees View on GitHub
bug missing-log missing-version
Dominant language
C
Stars
10.6k
Forks
822
PR merge metrics
No merged PRs in 30d

Description

## I'm submitting a…

[x] Bug

[ ] Feature Request
[ ] Documentation Request
[ ] Other (Please describe in detail)

## Current Behavior
It looks like this function checks whether the container is floating, but it doesn't go up the hierarchy to make sure its parents aren't.
https://github.com/i3/i3/blob/9db03797da3cea5dc6898adc79a68ba4523a409c/src/con.c#L1707-L1712
I suspect this might cause a border aligning with the edge of the screen to disappear if hide_edge_borders is enabled and con is a child of a split floating container.

## Expected Behavior
hide_edge_borders should skip all floating trees entirely.

## Reproduction Instructions
Possible repro:
- Place a floating window so its border is right at the edge of the screen
- Create a new split
- The border disappears

## Suggested fix
Replace `con_is_floating()` with `con_inside_floating()`.

I'm filing this as an issue rather than opening a pull request because I'm not using i3 anymore, and I can't actually test my findings. I've found a similar bug in sway and decided to look at i3 to see if something similar was going on, related pr: https://github.com/swaywm/sway/pull/6278.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.