mirror of
https://github.com/swaywm/sway.git
synced 2025-11-10 13:29:51 -05:00
Introduce container_is_scratchpad_hidden
Just a convenience function that improves readability of the code. Other things worth noting: * container_get_siblings and container_sibling_index no longer use the const keyword * container_handle_fullscreen_reparent is only ever called after attaching the container to a workspace, so its con->workspace check has been changed to an assertion
This commit is contained in:
parent
68a28e482f
commit
6b8bf10941
12 changed files with 35 additions and 30 deletions
|
|
@ -1156,11 +1156,11 @@ enum sway_container_layout container_current_parent_layout(
|
|||
return con->current.workspace->current.layout;
|
||||
}
|
||||
|
||||
list_t *container_get_siblings(const struct sway_container *container) {
|
||||
list_t *container_get_siblings(struct sway_container *container) {
|
||||
if (container->parent) {
|
||||
return container->parent->children;
|
||||
}
|
||||
if (!container->workspace) {
|
||||
if (container_is_scratchpad_hidden(container)) {
|
||||
return NULL;
|
||||
}
|
||||
if (list_find(container->workspace->tiling, container) != -1) {
|
||||
|
|
@ -1169,7 +1169,7 @@ list_t *container_get_siblings(const struct sway_container *container) {
|
|||
return container->workspace->floating;
|
||||
}
|
||||
|
||||
int container_sibling_index(const struct sway_container *child) {
|
||||
int container_sibling_index(struct sway_container *child) {
|
||||
return list_find(container_get_siblings(child), child);
|
||||
}
|
||||
|
||||
|
|
@ -1181,7 +1181,10 @@ list_t *container_get_current_siblings(struct sway_container *container) {
|
|||
}
|
||||
|
||||
void container_handle_fullscreen_reparent(struct sway_container *con) {
|
||||
if (con->fullscreen_mode != FULLSCREEN_WORKSPACE || !con->workspace ||
|
||||
if (!sway_assert(con->workspace, "Expected con to have a workspace")) {
|
||||
return;
|
||||
}
|
||||
if (con->fullscreen_mode != FULLSCREEN_WORKSPACE ||
|
||||
con->workspace->fullscreen == con) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1460,3 +1463,7 @@ void container_raise_floating(struct sway_container *con) {
|
|||
node_set_dirty(&floater->workspace->node);
|
||||
}
|
||||
}
|
||||
|
||||
bool container_is_scratchpad_hidden(struct sway_container *con) {
|
||||
return con->scratchpad && !con->workspace;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -310,10 +310,7 @@ void root_for_each_container(void (*f)(struct sway_container *con, void *data),
|
|||
// Scratchpad
|
||||
for (int i = 0; i < root->scratchpad->length; ++i) {
|
||||
struct sway_container *container = root->scratchpad->items[i];
|
||||
// If the container has a workspace then it's visible on a workspace
|
||||
// and will have been iterated in the previous for loop. So we only
|
||||
// iterate the hidden scratchpad containers here.
|
||||
if (!container->workspace) {
|
||||
if (container_is_scratchpad_hidden(container)) {
|
||||
f(container, data);
|
||||
container_for_each_child(container, f, data);
|
||||
}
|
||||
|
|
@ -362,7 +359,7 @@ struct sway_container *root_find_container(
|
|||
// Scratchpad
|
||||
for (int i = 0; i < root->scratchpad->length; ++i) {
|
||||
struct sway_container *container = root->scratchpad->items[i];
|
||||
if (!container->workspace) {
|
||||
if (container_is_scratchpad_hidden(container)) {
|
||||
if (test(container, data)) {
|
||||
return container;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,8 +197,7 @@ static bool gaps_to_edge(struct sway_view *view) {
|
|||
|
||||
void view_autoconfigure(struct sway_view *view) {
|
||||
struct sway_container *con = view->container;
|
||||
if (!con->workspace) {
|
||||
// Hidden in the scratchpad
|
||||
if (container_is_scratchpad_hidden(con)) {
|
||||
return;
|
||||
}
|
||||
struct sway_output *output = con->workspace->output;
|
||||
|
|
@ -1054,7 +1053,7 @@ void view_set_urgent(struct sway_view *view, bool enable) {
|
|||
|
||||
ipc_event_window(view->container, "urgent");
|
||||
|
||||
if (view->container->workspace) {
|
||||
if (!container_is_scratchpad_hidden(view->container)) {
|
||||
workspace_detect_urgent(view->container->workspace);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue