Don't apply hide_edge_borders to floating windows

This change matches i3's behavior.
This commit is contained in:
mwenzkowski 2019-04-16 21:20:48 +02:00 committed by Brian Ashworth
parent e9e1fbc501
commit 9ac2342a67

View file

@ -221,8 +221,10 @@ void view_autoconfigure(struct sway_view *view) {
con->border_top = con->border_bottom = true; con->border_top = con->border_bottom = true;
con->border_left = con->border_right = true; con->border_left = con->border_right = true;
double y_offset = 0;
if (!container_is_floating(con) && ws) {
if (ws) {
bool smart = config->hide_edge_borders == E_SMART || bool smart = config->hide_edge_borders == E_SMART ||
(config->hide_edge_borders == E_SMART_NO_GAPS && (config->hide_edge_borders == E_SMART_NO_GAPS &&
!gaps_to_edge(view)); !gaps_to_edge(view));
@ -240,24 +242,22 @@ void view_autoconfigure(struct sway_view *view) {
int bottom_y = con->y + con->height + con->current_gaps.bottom; int bottom_y = con->y + con->height + con->current_gaps.bottom;
con->border_bottom = bottom_y != ws->y + ws->height; con->border_bottom = bottom_y != ws->y + ws->height;
} }
}
double y_offset = 0; // In a tabbed or stacked container, the container's y is the top of the
// title area. We have to offset the surface y by the height of the title,
// In a tabbed or stacked container, the container's y is the top of the // bar, and disable any top border because we'll always have the title bar.
// title area. We have to offset the surface y by the height of the title, list_t *siblings = container_get_siblings(con);
// bar, and disable any top border because we'll always have the title bar. bool show_titlebar = (siblings && siblings->length > 1)
list_t *siblings = container_get_siblings(con); || !config->hide_lone_tab;
bool show_titlebar = (siblings && siblings->length > 1) if (show_titlebar) {
|| !config->hide_lone_tab; enum sway_container_layout layout = container_parent_layout(con);
if (show_titlebar && !container_is_floating(con)) { if (layout == L_TABBED) {
enum sway_container_layout layout = container_parent_layout(con); y_offset = container_titlebar_height();
if (layout == L_TABBED) { con->border_top = false;
y_offset = container_titlebar_height(); } else if (layout == L_STACKED) {
con->border_top = false; y_offset = container_titlebar_height() * siblings->length;
} else if (layout == L_STACKED) { con->border_top = false;
y_offset = container_titlebar_height() * siblings->length; }
con->border_top = false;
} }
} }