Age | Commit message (Collapse) | Author |
|
To do this properly, the transaction queue will only be processed if it
can be completely processed.
|
|
|
|
Rather than allocate a structure and expect callers to free it, take a
pointer to an existing struct as an argument.
This function is no longer called anywhere though.
|
|
Instead, damage each container when applying the transaction.
|
|
|
|
Children can exist when destroying a container, such as when destroying
the last output. Sway is not terminating in that case.
|
|
Emitting the close event needs to happen before
container_output_destroy, because container_output_destroy sets the
sway_output to NULL and sway_output is used in IPC.
|
|
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.
|
|
|
|
Also add workspace to the transaction when a view maps in fullscreen
mode.
|
|
|
|
Also moved the arranging into view_unmap to avoid excessive code
duplication.
|
|
|
|
It happened when a view is a grandchild or deeper of the workspace, is
fullscreen, and unmaps. The workspace would not be included in the
transaction and its pointer to the fullscreen view was left dangling.
|
|
|
|
Launch sway with SWAY_DEBUG=txn_timings to enable it.
|
|
|
|
|
|
|
|
container_destroy was calling container_reap_empty, which calls
container_destroy and so on. Eventually the original container_destroy
would return a NULL pointer to the caller which caused a crash.
This also fixes an arrange on the wrong container when moving views in
and out of stacks.
|
|
|
|
This forces transactions to complete in order by using a singly linked
list stored in the sway server.
|
|
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.
|
|
bugfix: avoid access after free
|
|
if src is NULL due to a previous error we cannot use it in the command
result string.
Moreover if `src` points to `p.we_wordv[0]` we cannot use it after
`wordfree(&p)` in the command result string.
Bonus feature: If there was an error accessing the file, the string
rapresentation of the error is now included in the command result
string.
|
|
tobiasblass/prepare_server_before_dropping_privileges
Perform (partial) server initialization before dropping privileges.
|
|
Allows desktop capture via the dmabuf-capture wlroots example client.
|
|
Some operations during backend creation (e.g. becoming DRM master)
require CAP_SYS_ADMIN privileges. At this point, sway has dropped them
already, though. This patch splits the privileged part of server_init
into its own function and calls it before dropping its privileges.
This fixes the bug with minimal security implications.
|
|
* Also fix parts of the rendering where it was rendering the pending
state instead of current.
|
|
|
|
|
|
* Ensure that modifier keys are identified even when the next key does
not produce a keysym. This requires that modifier change tracking
be done for each sway_shortcut_state.
* Permit regular and --release shortcuts on the same key combination.
Distinct bindings are identified for press and release cases; note
that the release binding needs to be identified for both key press
and key release events.
* Maintain ascending sort order for the shortcut state list, and keep
track of the number of pressed key ids, for simpler (and hence
faster) searching of the list of key bindings.
* Move binding duplicate detection into get_active_binding to avoid
duplicating error messages.
|
|
Sort the list comprising the set of keys for the binding in ascending
order. (Keyboard shortcuts depend only on the set of simultaneously
pressed keys, not their order, so this change should have no external
effect.) This simplifies comparisons between bindings.
|
|
|
|
Render drag icons
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
|
|
sway/criteria: gcc string truncation warning fix
|
|
|
|
|
|
|
|
Runtime variable expansion
|