Age | Commit message (Collapse) | Author |
|
This PR changes the way we handle transactions to a more simple method.
The new method is to mark containers as dirty from low level code
(eg. arranging, or container_destroy, and eventually seat_set_focus),
then call transaction_commit_dirty which picks up those containers and
runs them through a transaction. The old methods of using transactions
(arrange_and_commit, or creating one manually) are now no longer
possible.
The highest-level code (execute_command and view implementation
handlers) will call transaction_commit_dirty, so most other code just
needs to set containers as dirty. This is done by arranging, but can
also be done by calling container_set_dirty.
|
|
|
|
|
|
|
|
The title and marks textures would have their height set from the
config's computed max font height, but the textures were not regenerated
when the config's max font height changed which made a gap appear.
Rather than making it regenerate the title textures every time the
config font height was changed, I've changed it to just make the
textures the height of the title itself and fill any gap when rendering.
Also, the title_width and marks_width variables have been renamed to
make it more obvious that they are in output-buffer-local coordinates.
Fixes #1936.
|
|
|
|
|
|
|
|
|
|
|
|
Also, when rendering, don't descend into the tree if the lockscreen is
active. Just render the lockscreen's surfaces.
|
|
|
|
|
|
|
|
|
|
The "simple" rendering function only applies to tiled views.
|
|
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
|
|
|
|
|
|
Both sway_output and sway_layer_shell listen to wlr's output destroy event,
but sway_layer_shell needs to access into sway_output's data strucure and needs
to be destroyed first.
Resolve this by making sway_layer_shell listen to a new event that happens at
start of sway_output's destroy handler
|
|
We were freeing the sway_output immediately upon disconnect which left
a dangling pointer in the output's container. It then tried to use the
pointer when the container is freed.
We don't need to store the sway_output in an output's container which is
destroying, so the fix is to set the pointer to NULL and remove the use
in container_free.
Also added an arrange when the output is disconnected for good measure.
|
|
|
|
There was no `current` child because the container was destroyed. This
makes it fall back to looking in the parent's current children list.
|
|
This implements atomic layout updates for when views map, reparent or
unmap.
|
|
* Also fix parts of the rendering where it was rendering the pending
state instead of current.
|
|
|
|
|
|
|
|
|
|
|
|
* The arrange_foo functions are now replaced with arrange_and_commit, or
with manually created transactions and arrange_windows x2.
* The arrange functions are now only called from the highest level
functions rather than from both high level and low level functions.
* Due to the previous point, view_set_fullscreen_raw and
view_set_fullscreen are both merged into one function again.
* Floating and fullscreen are now working with transactions.
|
|
|
|
|
|
|
|
|
|
|
|
Only send frame to visible surfaces when fullscreened
|
|
Setting it to "rerender" will always re-render everything
regardless of the damaged region. Setting it to "highlight" will
clear the screen and render only damaged regions.
|
|
|
|
|
|
Also don't accumulate empty damage
|
|
|
|
|
|
|
|
|
|
* Attach sticky containers to new workspaces when switching
* Fire the close event *before* we start destroying the workspace to
prevent a crash
Because the sticky container now follows the visible workspace, this
simplifies the rendering and container_at logic.
|
|
|
|
|
|
|
|
|