|
|
|
@ -197,11 +197,13 @@ static bool gaps_to_edge(struct sway_view *view) {
|
|
|
|
|
|
|
|
|
|
void view_autoconfigure(struct sway_view *view) {
|
|
|
|
|
struct sway_container *con = view->container;
|
|
|
|
|
struct sway_workspace *ws = con->workspace;
|
|
|
|
|
|
|
|
|
|
if (container_is_scratchpad_hidden(con) &&
|
|
|
|
|
con->fullscreen_mode != FULLSCREEN_GLOBAL) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
struct sway_output *output = con->workspace ? con->workspace->output : NULL;
|
|
|
|
|
struct sway_output *output = ws ? ws->output : NULL;
|
|
|
|
|
|
|
|
|
|
if (con->fullscreen_mode == FULLSCREEN_WORKSPACE) {
|
|
|
|
|
con->content_x = output->lx;
|
|
|
|
@ -217,27 +219,23 @@ void view_autoconfigure(struct sway_view *view) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct sway_workspace *ws = view->container->workspace;
|
|
|
|
|
|
|
|
|
|
bool smart = config->hide_edge_borders == E_SMART ||
|
|
|
|
|
config->hide_edge_borders == E_SMART_NO_GAPS;
|
|
|
|
|
bool other_views = smart && !view_is_only_visible(view);
|
|
|
|
|
bool no_gaps = config->hide_edge_borders != E_SMART_NO_GAPS
|
|
|
|
|
|| !gaps_to_edge(view);
|
|
|
|
|
|
|
|
|
|
con->border_top = con->border_bottom = true;
|
|
|
|
|
con->border_left = con->border_right = true;
|
|
|
|
|
|
|
|
|
|
if (ws) {
|
|
|
|
|
bool smart = config->hide_edge_borders == E_SMART ||
|
|
|
|
|
(config->hide_edge_borders == E_SMART_NO_GAPS &&
|
|
|
|
|
!gaps_to_edge(view));
|
|
|
|
|
bool hide_smart = smart && view_is_only_visible(view);
|
|
|
|
|
|
|
|
|
|
if (config->hide_edge_borders == E_BOTH
|
|
|
|
|
|| config->hide_edge_borders == E_VERTICAL
|
|
|
|
|
|| (smart && !other_views && no_gaps)) {
|
|
|
|
|
|| config->hide_edge_borders == E_VERTICAL || hide_smart) {
|
|
|
|
|
con->border_left = con->x - con->current_gaps.left != ws->x;
|
|
|
|
|
int right_x = con->x + con->width + con->current_gaps.right;
|
|
|
|
|
con->border_right = right_x != ws->x + ws->width;
|
|
|
|
|
}
|
|
|
|
|
if (config->hide_edge_borders == E_BOTH
|
|
|
|
|
|| config->hide_edge_borders == E_HORIZONTAL
|
|
|
|
|
|| (smart && !other_views && no_gaps)) {
|
|
|
|
|
|| config->hide_edge_borders == E_HORIZONTAL || hide_smart) {
|
|
|
|
|
con->border_top = con->y - con->current_gaps.top != ws->y;
|
|
|
|
|
int bottom_y = con->y + con->height + con->current_gaps.bottom;
|
|
|
|
|
con->border_bottom = bottom_y != ws->y + ws->height;
|
|
|
|
|