Age | Commit message (Collapse) | Author |
|
The check didn't include && ws_num < 100 so l would always be 1 or 2
Instead of fixing logic it's simpler to just call snprintf twice to get
length and use that.
Also change malloc failure check to sway_assert because both callers of
this function do not do null check and would segfault...
Found through static analysis.
|
|
These could be called with NULL if there is no focus
Found through static analysis.
|
|
|
|
|
|
Fixes floating window input offsets. As discussed on IRC with emersion,
this shouldn't have been done in the first place.
|
|
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
|
|
That happened when they were in tabbed or stacked containers.
Fixes #2161
|
|
|
|
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 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.
|
|
|
|
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 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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Runtime variable expansion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix view title update order
|
|
`_container_destroy` emits a destroy event, and any listener for this
event should have access to the full container, not a half destroyed
one.
`_container_destroy` also destroys the swayc, so we have to grab a
reference to the sway_workspace so we can free it afterwards.
This also fixes a memory leak where the floating container wasn't freed.
Fixes #2092.
|
|
This commit fixes the function call order to make sure that the title
texture is updated using the relevant global font size.
|
|
Fixes #2085.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|