| Commit message (Collapse) | Author | Age |
... | |
| | | |
| | | |
| | | |
| | | | |
Fixes #2492.
|
|\ \ \ \
| | | | |
| | | | | |
Destroy empty workspaces in output_evacuate
|
| | |/ /
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
seat.c: clean-up seat_set_focus_warp function
|
|/ / / / |
|
|\ \ \ \
| |/ / /
|/| | | |
Build fix
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Emit window close event earlier, before destroying
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Add fish completion
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Rename sway_root.outputs to sway_root.all_outputs
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This list includes disabled outputs.
When sway_container is demoted, we'll need to store the root's children
(ie. enabled outputs) in the sway_root. It makes sense to put these in a
list called `outputs`, so I'm renaming the existing list in advance.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Remove layout.c
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When we have type safety we'll need to have functions for
workspace_add_tiling and so on. This means the existing container
functions will be just for containers, so they are being moved to
container.c. At this point layout.c doesn't contain much else, so I've
relocated everything and removed the file.
* container_swap and its static functions have been moved to the swap
command and made static.
* container_recursive_resize has been moved to the resize command and
made static.
* The following have been moved to container.c:
* container_handle_fullscreen_reparent
* container_insert_child
* container_add_sibling
* container_add_child
* container_remove_child
* container_replace_child
* container_split
* enum movement_direction and sway_dir_to_wlr have been moved to util.c.
Side note: Several commands included layout.h which then included
root.h. With layout.h gone, root.h has to be included by those commands.
|
|\ \ \ \
| | | | |
| | | | | |
Make separate gaps functions per container type
|
|/ / / /
| | | |
| | | |
| | | | |
In preparation for using type safety.
|
|\ \ \ \
| |/ / /
|/| | | |
Workspace move cycle
|
|/ / /
| | |
| | |
| | |
| | | |
On move workspace to direction: Try the farthest on the opposite
direction if no workspace is found at given direction.
|
|\ \ \
| | | |
| | | | |
Relocate container_move, container_move_to and container_get_in_direction
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* container_move is only called from the move command
* container_move_to was called from both the move command and the sticky
command, but the sticky command can easily not call it
* container_get_in_direction is only called from the focus command
Moving these functions to their respective commands gives better
separation of code and removes bloat from layout.c. These functions will
need to be refactored to take advantage of type safety, so separating
them will make this easier to refactor.
The following static functions have also been moved:
* is_parellel
* invert_movement
* move_offs
* container_limit
* workspace_rejigger
* move_out_of_tabs_stacks
* get_swayc_in_output_direction
They were all used by the move functions, except for the last one which
is used by focus.
Other changes:
* index_child has been renamed to container_sibling_index, moved to
container.c and made public
* sway_output_from_wlr has been renamed to output_from_wlr_output, moved
to output.c and made public
* container_handle_fullscreen_reparent has been made public
* sway_dir_to_wlr has been made public
No changes have been made to any of the moved functions, other than
updating calls to functions that have been renamed.
|
|\ \ \ \
| |/ / /
|/| | | |
commands: implement move absolute
|
| |\ \ \
| |/ / /
|/| | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
Refactor destroy functions and save workspaces when there's no outputs
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changes the destroy functions to the following:
* output_begin_destroy
* output_destroy
* workspace_begin_destroy
* workspace_destroy
* container_begin_destroy
* container_destroy
* view_begin_destroy
* view_destroy
The terminology was `destroy` and `free`, and it has been changed to
`begin_destroy` and `destroy` respectively.
When the last output is disconnected, its workspaces will now be stashed
in the root. Upon connection of a new output they will be restored.
There is a new function `workspace_consider_destroy` which decides
whether the given workspace should be destroyed or not (ie. empty and
not visible).
Calling container_begin_destroy will no longer automatically reap the
parents. In some places we want to reap the parents and in some we
don't, so this is left to the caller.
container_reap_empty_recursive and container_reap_empty have been
combined into one function and it will recurse up the tree.
|
|\ \ \
| | | |
| | | | |
[WIP?] Fix zsh completions
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Translate floating containers when a workspace is moved
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When a workspace is moved to another output, or the output it's on
changes its global layout position, the floating containers on that
workspace should be translated by the same amount as the workspace. This
keeps the floating containers in the same position relative to the
workspace.
A check is done to make sure the floating container's center point isn't
being moved off screen. If it is, it is centered within the workspace.
Fixes part of #2500.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Add app_id and class to get_tree output
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Fix sending fullscreen event to view
|
|/ / / /
| | | |
| | | |
| | | | |
Fixes #2504
|
|\ \ \ \
| | | | |
| | | | | |
Replace enum resize_edge with wlr_edges
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Improve new workspace name selection
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Improves upon 18e425ed by using the first assigned workspace instead of
the last one. The order isn't explicitly guaranteed to be the same as in
the config, but in general works.
|
|\ \ \ \
| | | | |
| | | | | |
Fix bad-free in swaynag
|
|/ / / / |
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
Fix jumping views
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes #2490.
To be honest I'm not sure why this fixes the issue.
I observed that I could only make the view jump if I resized it to the
smallest possible size first. Then I had a suspicion that we were
accidentally factoring in the title and border sizes into the view size
when it uses CSD. So I changed that and it appears to have fixed the
jumping issue.
I guess when we factor the title and borders in, we send a configure to
the surface with a size smaller than the minimum, and it comes back with
a surface at the minimum size. We interpret this as an unexpected
resize, and this somehow makes it jump.
|
|\ \ \
| | | |
| | | | |
Send enter/leave events for floating views
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we used a reparent event to detect when a view changes
parent, then sent an output enter/leave to the surfaces if needed. This
worked for tiling views but not floating views, as floating views can
intersect another output without changing parent.
The solution implemented for floating views also applies cleanly to
tiling views, so the previous method has been completely replaced and
the reparent event has been removed.
This introduces a new function container_discover_outputs. This function
compares the container's `current` position to the outputs, sends enter
and leave events as needed, and keeps track of which outputs it's
intersecting in a new `container->outputs` list. If it has entered a new
output with a different scale then the title and marks textures will
also be recreated at the new scale.
The function is called when a transaction applies. This is convenient as
it means we don't have to call it from various places.
There is imperfect rendering when a floating view overlaps two outputs
with different scales. It renders correctly for the most recently
entered output, but there is only one title texture so it renders
incorrectly on the old output.
Fixes #2482
|